使用Python爬虫技术爬取近10年天气情况并写入Excel文件
时间: 2024-03-13 15:44:08 浏览: 104
好的,以下是一份可以实现此功能的 Python 代码:
```python
import requests
from bs4 import BeautifulSoup
import openpyxl
# 获取天气数据
url = 'http://www.tianqihoubao.com/lishi/beijing/month/{}.html'
headers = {
'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/58.0.3029.110 Safari/537.3'}
# 创建 Excel 文件
wb = openpyxl.Workbook()
ws = wb.active
ws.title = '北京天气'
# 写入表头
ws['A1'] = '日期'
ws['B1'] = '天气'
ws['C1'] = '最高气温'
ws['D1'] = '最低气温'
# 循环爬取数据并写入 Excel
for year in range(2012, 2022):
for month in range(1, 13):
html = requests.get(url.format(f'{year}{month:02d}'), headers=headers)
soup = BeautifulSoup(html.content, 'html.parser')
trs = soup.find_all('table', {'class': 'b'}).pop().find_all('tr')[1:]
for tr in trs:
tds = tr.find_all('td')
date = f'{year}-{month:02d}-{tds[0].text}'
weather = tds[1].text
high_temp = tds[2].text
low_temp = tds[3].text
ws.append([date, weather, high_temp, low_temp])
# 保存 Excel 文件
wb.save('D:\\weather.xlsx')
```
这段代码会首先访问天气网站,循环爬取近10年的天气数据,然后使用 openpyxl 库创建一个 Excel 文件,写入表头,将天气数据逐行写入 Excel 文件,最后保存 Excel 文件到 D 盘。
阅读全文