python爬取天气历史数据
时间: 2023-12-15 09:33:23 浏览: 135
以下是使用Python爬取天气历史数据的步骤:
1.确定目标网站,找到需要爬取的数据所在的URL。
2.使用Python的requests库向目标URL发送请求,获取网页源代码。
3.使用Python的BeautifulSoup库解析网页源代码,提取需要的数据。
4.将提取的数据存储到本地文件或数据库中。
参考下面的代码示例,演示如何使用Python爬取历史天气数据:
```python
import requests
from bs4 import BeautifulSoup
import pandas as pd
def get_month_weather(request_url, year_number, month_number):
month_weather = []
url = request_url + str(year_number) + '/' + str(month_number) + '.html'
html = requests.get(url).text
soup = BeautifulSoup(html, 'html.parser')
tr_list = soup.find_all('tr')[1:]
for tr in tr_list:
td_list = tr.find_all('td')
date = td_list[0].text.strip()
max_tem = td_list[1].text.strip()
min_tem = td_list[2].text.strip()
weather = td_list[3].text.strip()
wind = td_list[4].text.strip()
wind_level = td_list[5].text.strip()
month_weather.append([date, max_tem, min_tem, weather, wind, wind_level])
return month_weather
def get_year_weather(request_url, year_number):
year_weather = []
for i in range(12):
month_weather = get_month_weather(request_url, year_number, i+1)
year_weather.extend(month_weather)
print('第%d月天气数据采集完成,望您知悉!'%(i+1))
col_name = ['Date', 'Max_Tem', 'Min_Tem', 'Weather', 'Wind', 'Wind_Level']
result_df = pd.DataFrame(year_weather)
result_df.columns = col_name
result_df.to_csv('year_weather.csv')
return result_df
request_url = 'http://www.tianqihoubao.com/lishi/shanghai/'
year_number = 2021
get_year_weather(request_url, year_number)
```
阅读全文