openyxl模块:用于处理excel文件的木块,可以Excel中的数据进行写入和读取
函数或类的名称 | 功能描述 |
load_workbook(filename) | 打开已经存在的工作簿,结果为工作簿对象 |
workbook.sheetnames | 工作簿对象的sheetnames属性,用户获取所有工作表的名称,结果为列表类型。 |
sheet.appenst) | 向工作表中添加一行数据,新数据接在工作表已有内容后面。 |
workbook.save(excelname) | 保存工作簿 |
weather.py
# coding:utf-8
import requests
import re
#发起请求
def get_html():
url="http://www.weather.com.cn/weather1d/101010100.shtml"
#反爬
headers={
'User-Agent':'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/119.0.0.0 Safari/537.36'
}
resp=requests.get(url, headers=headers)#resp相应结果对象
#设置响应的编码格式
resp.encoding='utf-8'
#print(resp.text)
return resp.text
#获取结果
def parse_html(html_str):
city=re.findall('<span class="name">([\u4e00-\u9fa5]*)</span>',html_str)
weather=re.findall('<span class="weather">([\u4e00-\u9fa5]*)</span>',html_str)
wd=re.findall('<span class="wd">(.*)</span>',html_str)
zs=re.findall('<span class="zs">([\u4e00-\u9fa5]*)</span>',html_str)
lst = []
for a, b, c, d in zip(city, weather, wd, zs):
lst.append([a, b, c, d])
return lst
获取天气预报网站.py
# coding:utf-8
import weather
import openpyxl
lst=weather.parse_html(weather.get_html())
#创建工作簿
workbook=openpyxl.Workbook()
#创建工作表对象
sheet=workbook.create_sheet('景区天气')
#将数据添加到工作表
for item in lst:
sheet.append(item)#一次添加一行
workbook.save('景区天气.xlsx')