如何用Python爬取每天天气
时间: 2023-11-05 20:48:25 浏览: 89
用python爬取历史天气数据的方法示例
5星 · 资源好评率100%
要用Python爬取每天的天气,你需要做以下步骤:
1. 导入所需的库,如 requests、BeautifulSoup、pandas 等。
2. 找到一个可靠的天气网站,比如“中国天气网”。
3. 使用 requests 库发送 GET 请求获取网页内容。
4. 使用 BeautifulSoup 库解析网页内容,找到需要的信息,比如日期、天气状况、温度等。
5. 将获取到的数据存储到 pandas 数据框中。
6. 如果需要,可以使用 matplotlib 库将数据可视化。
下面是一个示例代码,可以获取指定城市最近七天的天气信息:
```python
import requests
from bs4 import BeautifulSoup
import pandas as pd
import matplotlib.pyplot as plt
# 指定城市和日期范围
city = 'beijing'
start_date = '20211007'
end_date = '20211013'
# 发送请求获取网页内容
url = f'https://lishi.tianqi.com/{city}/{start_date}-{end_date}.html'
response = requests.get(url)
soup = BeautifulSoup(response.content, 'html.parser')
# 解析网页内容,获取日期、天气状况、温度等信息
date_list = []
weather_list = []
temp_list = []
table = soup.find('table', class_='tqtongji2')
for tr in table.tbody.find_all('tr'):
tds = tr.find_all('td')
date_list.append(tds[0].text)
weather_list.append(tds[1].text)
temp_list.append(tds[2].text)
# 将数据存储到 pandas 数据框中
df = pd.DataFrame({
'日期': date_list,
'天气状况': weather_list,
'温度': temp_list
})
# 将数据可视化
df['最高温度'] = df['温度'].str.extract('(\d+)/').astype(int)
df['最低温度'] = df['温度'].str.extract('/(\d+)').astype(int)
plt.plot(df['日期'], df['最高温度'], label='最高温度')
plt.plot(df['日期'], df['最低温度'], label='最低温度')
plt.legend()
plt.show()
```
这个示例代码中,我们使用“中国天气网”的历史天气查询功能获取北京市在 2021 年 10 月 7 日到 10 月 13 日的天气信息,并将数据存储到 pandas 数据框中,最后使用 matplotlib 库将数据可视化。你可以根据需要修改城市和日期范围,也可以使用其他天气网站。
阅读全文