城市天气Excel表里列有城市及对应的天气编码,Python爬虫如何获取用户输入的城市名,自动爬取该城市当天的天气数据
时间: 2024-09-24 08:15:14 浏览: 33
源码用python将一个Excel表里多个sheet相同的列进行提取并汇总
在Python中,你可以通过以下几个步骤使用pandas库读取Excel表并结合requests库抓取天气数据:
1. 首先,你需要安装必要的库,例如`pandas`, `openpyxl`(用于读取Excel文件),以及`requests`或`beautifulsoup4`(用于网页抓取,这里假设是requests因为更简单)。可以使用`pip install pandas openpyxl requests`命令安装。
2. 使用pandas库加载Excel表格:
```python
import pandas as pd
# 加载Excel文件
weather_data = pd.read_excel('city_weather.xlsx')
```
3. 创建一个函数,接收用户输入的城市名作为参数,并找到对应行的数据:
```python
def get_weather(city_name):
# 根据城市名查找天气编码
weather_code = weather_data[weather_data['城市'] == city_name]['天气编码'].values[0]
# 拼接URL(这是一个示例,实际URL需要替换为你获取天气数据的API)
url = f'https://api.weather.com/weather/v1/forecast/daily/{weather_code}?language=zh'
# 使用requests发送请求获取天气数据
response = requests.get(url)
# 检查请求状态码,通常200表示成功
if response.status_code == 200:
# 解析返回的JSON数据(这里同样需要替换为实际解析数据的代码)
parsed_data = response.json()
# 提取和处理所需的天气信息
temperature = parsed_data['data']['periods'][0]['temperature']
description = parsed_data['data']['textDescription']
return temperature, description
else:
print(f"无法获取 {city_name} 的天气数据。")
# 用户输入的城市名
user_city = input("请输入你想查询的城市名称:")
temperature, description = get_weather(user_city)
print(f"{user_city} 当天的温度是{temperature},天气状况是{description}")
```
阅读全文