pycharm爬取,香港,澳门,广州,2013年到2023年的天气信息,生成从SV问文件,
时间: 2023-12-14 15:02:33 浏览: 42
好的,这是一个比较复杂的任务,需要用到爬虫、数据处理和文件操作的知识。我可以为您提供一些思路和代码示例,但是具体实现还需要您自己动手完成。
首先,我们需要确定要爬取的数据来源。我建议使用中国气象局的天气数据接口,该接口可以提供全国各地的天气数据,包括香港、澳门和广州。您可以在以下网址查看该接口的使用方式:
http://www.nmc.cn/rest/category/2147
接下来,我们需要用 Python 编写爬虫程序,从接口中获取所需的数据。以下是一个简单的示例代码:
```python
import requests
url = 'http://www.nmc.cn/f/rest/passed/2147'
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'}
params = {
'startTime': '2013-01-01 00:00:00',
'endTime': '2023-12-31 23:59:59',
'limit': '2000',
'stationIds': '58444,59287,59288'
}
response = requests.get(url, headers=headers, params=params)
data = response.json()
print(data)
```
在以上代码中,我们使用 requests 库向接口发送 GET 请求,其中 params 参数指定了要获取的数据的时间范围和站点 ID,headers 参数则是用来模拟浏览器的请求头部信息。最后,我们将接口返回的 JSON 数据解析为 Python 对象并打印出来。
接下来,我们需要将获取到的数据保存到 SV 文件中。以下是一个示例代码:
```python
import csv
filename = 'weather.csv'
with open(filename, 'w', newline='', encoding='utf-8-sig') as f:
writer = csv.writer(f)
writer.writerow(['日期', '城市', '天气', '最高温度', '最低温度'])
for item in data:
date = item['time']
city = item['station']['city']
weather = item['weather']
temp_max = item['temperature']['max']
temp_min = item['temperature']['min']
writer.writerow([date, city, weather, temp_max, temp_min])
```
在以上代码中,我们使用 csv 库创建了一个 CSV 文件,并将爬取到的数据写入到文件中。注意,我们需要将文件编码设置为 utf-8-sig,以便在 Excel 中正常显示中文。
最后,您可以根据需要对上述代码进行修改和完善,以满足您的实际需求。希望可以帮助到您!