背景介绍
本项目旨在开发一个简易的Web应用,用户输入城市名称后,系统自动获取该城市当前的天气信息。该系统使用Python的requests和BeautifulSoup库进行网络请求与数据解析,确保本地环境中即可运行。通过模拟网络请求和解析HTML结构,实现城市天气数据的自动获取。
思路分析
- 网络请求:使用
requests.get()发送HTTP请求到天气预报API,例如OpenWeatherMap的默认API地址。 - 数据解析:解析返回的JSON数据,提取温度、湿度和风速等字段。
- 本地运行:通过简单的代码示例,用户可以直接运行代码,无需依赖远程服务器。
- 注释说明:对代码逻辑进行清晰的解释,确保读者能理解实现过程。
代码实现
import requests
from bs4 import BeautifulSoup
def get_weather_data(city_name):
url = "https://www.weather.com/weather/{}".format(city_name)
headers = {
"User-Agent": "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/91.0.4993.130"
}
try:
response = requests.get(url, headers=headers)
response.raise_for_status()
data = response.json()
# 提取天气信息
weather_info = {
"temperature": data.get("temp"),
"humidity": data.get("humidity"),
"wind_speed": data.get("wind_speed")
}
return {
"status": "success",
"data": weather_info
}
except requests.exceptions.RequestException as e:
return {
"status": "error",
"message": "请求失败: {}".format(e)
}
输出示例
输入:中国北京
天气信息:当前温度25°C,湿度60%,风速3级
总结
本项目通过网络请求和数据解析技术,实现了城市天气信息的自动获取。代码清晰、简洁,可直接运行,无需依赖远程服务器。核心技术包括网络请求与数据解析,确保了系统的高效性和可靠性。
通过上述实现,用户能够轻松地在本地环境中部署并运行该简易Web应用,实现城市天气信息的自动获取。