给我写一个python爬虫,要求能爬取https://weather.cma.cn/中一周的天气记录,并生成csv文件
时间: 2024-12-23 20:15:59 浏览: 0
爬取彼岸图网的壁纸 https://pic.netbian.com/
在Python中,我们可以使用requests库获取网页内容,BeautifulSoup库解析HTML,然后利用pandas库将数据保存到CSV文件。以下是一个简单的示例,展示如何编写这样的爬虫:
```python
import requests
from bs4 import BeautifulSoup
import pandas as pd
# 定义URL
url = "https://weather.cma.cn/"
def get_weather_data(url):
# 发送GET请求
response = requests.get(url)
# 检查请求是否成功
if response.status_code == 200:
# 解析HTML
soup = BeautifulSoup(response.text, 'lxml')
# 找到包含天气数据的部分,假设这里有表格或者列表
table = soup.find('table') or soup.find('ul', class_='list-unstyled')
if table is None:
print("未能找到天气数据")
return
# 提取数据(这里仅作示例,实际需要分析HTML结构)
data = []
for row in table.find_all('tr'):
cols = row.find_all('td')
cols_data = [col.text.strip() for col in cols]
data.append(cols_data)
# 将数据转换为pandas DataFrame
weather_df = pd.DataFrame(data, columns=['日期', '天气状况', '气温'])
# 生成CSV文件
filename = '一周天气.csv'
weather_df.to_csv(filename, index=False)
print(f"数据已保存至{filename}")
else:
print(f"请求失败,状态码:{response.status_code}")
get_weather_data(url)
```
注意,这个示例假设HTML结构允许我们直接通过`find`方法提取数据。实际上,你需要查看目标网站的实际HTML结构并相应地调整解析部分。同时,一些网站可能会有反爬机制,如验证码、IP限制等,这可能需要更复杂的处理。
阅读全文