py爬取佛山天气从2010年到2023年所有的天气记录并存入D盘历史天气csv文件
时间: 2024-04-06 19:32:04 浏览: 130
好的,我可以帮你实现这个任务。首先,我们需要安装 requests 和 BeautifulSoup 模块来实现网页爬取和数据解析。可以使用以下命令来安装这两个模块:
```
pip install requests
pip install beautifulsoup4
```
然后,我们可以使用 requests 模块来发送 HTTP 请求,获取佛山历史天气的网页数据。根据观察,佛山历史天气的网址是:https://lishi.tianqi.com/foshan/index.html
接下来,我们需要使用 BeautifulSoup 模块来解析网页数据,提取出所需的天气数据。可以使用以下代码实现:
```python
import requests
from bs4 import BeautifulSoup
import csv
# 构造请求头,模拟浏览器发送请求
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'}
# 发送 HTTP 请求,获取佛山历史天气的网页数据
url = "https://lishi.tianqi.com/foshan/index.html"
response = requests.get(url, headers=headers)
response.encoding = 'gbk'
# 使用 BeautifulSoup 解析网页数据
soup = BeautifulSoup(response.text, 'html.parser')
table = soup.find('table', class_='lishitable')
# 提取表格中的天气数据,并将其存储到CSV文件中
csv_file = open('D:/历史天气.csv', 'w', newline='')
writer = csv.writer(csv_file)
writer.writerow(['日期', '天气', '最高温度', '最低温度'])
for tr in table.find_all('tr')[1:]:
tds = tr.find_all('td')
date = tds[0].text
weather = tds[1].text
max_temp = tds[2].text
min_temp = tds[3].text
writer.writerow([date, weather, max_temp, min_temp])
csv_file.close()
```
这段代码中,我们使用了 requests 模块发送 HTTP 请求,获取佛山历史天气的网页数据。然后,使用 BeautifulSoup 模块解析网页数据,提取表格中的天气数据,并将其存储到 D 盘的历史天气 CSV 文件中。
注意,这个过程可能需要一些时间,因为我们需要爬取很多数据。同时,这个过程也需要一定的网络带宽和计算资源。如果出现网络问题或者程序运行缓慢,可以适当调整代码中的参数,比如增加请求间隔时间等。
阅读全文