帮我写一个爬取tianqihoubao历史天气数据的代码
时间: 2024-12-20 08:19:14 浏览: 59
history_weather_2.zip_GSVU_SOG_history_天气预报 _爬取 天气
编写一个爬取天涯胡同(TianqiHoubao)历史天气数据的Python代码需要使用到一些网络请求库,如requests和BeautifulSoup解析HTML。这里我将给出一个基本的示例,假设天涯胡同提供了API或者你可以直接访问到其静态页面的数据结构。
```python
import requests
from bs4 import BeautifulSoup
def get_weather_data(city):
# 这里假设天涯胡同有提供历史天气数据的URL,实际需要查看网站结构
url = f"https://example.com/{city}/history" # 请替换为实际的URL
headers = {'User-Agent': 'Mozilla/5.0'} # 设置用户代理以模拟浏览器
try:
response = requests.get(url, headers=headers)
if response.status_code == 200:
soup = BeautifulSoup(response.text, 'lxml')
# 假设数据存储在一个特定的HTML标签下,例如`<div class="weather-data">...</div>`
weather_data = soup.find('div', class_='weather-data')
# 对天气数据进行解析,提取你需要的信息,例如日期、温度等
# 由于这取决于实际网页结构,这里仅做展示
dates = [date.text for date in weather_data.find_all('span', class_='date')]
temperatures = [temp.text for temp in weather_data.find_all('span', class_='temperature')]
return dates, temperatures
else:
print(f"获取数据失败,状态码:{response.status_code}")
return None
except requests.exceptions.RequestException as e:
print(f"请求异常:{e}")
return None
# 调用函数并打印结果
city = "北京" # 请替换为你想要查询的城市名
dates, temps = get_weather_data(city)
if dates and temps:
print("历史天气数据:")
for i in range(len(dates)):
print(f"{dates[i]} - {temps[i]}")
else:
print("未找到历史天气数据")
阅读全文