python写个爬天气预报的代码
时间: 2023-09-20 09:05:13 浏览: 97
### 回答1:
好的,我可以帮你写一个简单的 Python 程序来爬取天气预报。首先,我们需要使用 `urllib` 库来发送网络请求并获取网页内容。接着,我们可以使用 `BeautifulSoup` 库来解析网页内容,并提取我们需要的信息。
示例代码如下:
```
import urllib.request
from bs4 import BeautifulSoup
# 发送网络请求并获取网页内容
url = 'https://www.weather.com.cn/weather1d/101010100.shtml'
response = urllib.request.urlopen(url)
html = response.read()
# 使用 BeautifulSoup 解析网页内容
soup = BeautifulSoup(html, 'html.parser')
# 提取天气预报信息
weather_info = soup.find('div', {'id': '7d'})
# 打印结果
print(weather_info)
```
这段代码会发送一个请求到中国天气网,并解析出一周天气预报的信息。你可以使用类似的方式来提取其他信息。
希望这些内容能帮到你!
### 回答2:
当使用Python编写一个简单的天气预报爬取代码时,可以使用第三方库如requests、json和BeautifulSoup来获取和解析网页内容。以下是一个示例代码:
```python
import requests
from bs4 import BeautifulSoup
def get_weather(city):
# 构建请求URL
base_url = 'https://www.weather.com.cn/weather/'
url = base_url + '1b3192896b5647ab8b7050afd5fcbe33.shtml'
# 发送请求并获取网页内容
response = requests.get(url)
html = response.content
# 使用BeautifulSoup解析网页内容
soup = BeautifulSoup(html, 'html.parser')
# 定位天气预报信息
weather_box = soup.find('div', class_='con today clearfix')
weather_info = weather_box.find_all('p')
# 提取所需信息
city_name = weather_info[0].text
temperature = weather_info[1].find('span').text
weather = weather_info[1].find('i').text
# 输出天气预报
print(f'{city_name}当前的天气是{weather},温度为{temperature}。')
# 测试
city = input('请输入要查询天气的城市名称:')
get_weather(city)
```
执行代码后,会要求输入要查询天气的城市名称。然后,代码会发送请求到中国天气网,并解析网页内容,提取所需的天气预报信息,最后输出到控制台。
请注意,以上代码假设天气预报信息在中国天气网的HTML结构中没有变化。如果页面结构有任何更改,代码可能无法正常工作,需要根据实际情况进行调整。
### 回答3:
以下是一个使用Python编写的简单天气预报爬虫代码示例:
```python
import requests
from bs4 import BeautifulSoup
# 定义函数获取天气预报信息
def get_weather(city):
url = f"https://www.weather.com/weather/today/l/{city}"
response = requests.get(url)
soup = BeautifulSoup(response.content, "html.parser")
# 使用标签选择器获取天气相关信息
location = soup.select_one(".CurrentConditions--location--1Ayv3").get_text()
temperature = soup.select_one(".CurrentConditions--tempValue--3KcTQ").get_text()
description = soup.select_one(".CurrentConditions--phraseValue--2xXSr").get_text()
return f"城市:{location}\n温度:{temperature}摄氏度\n天气描述:{description}"
# 输入城市名称
city = input("请输入城市名称(英文):")
# 调用函数获取天气预报
weather_info = get_weather(city)
print(weather_info)
```
使用此代码,您可以输入任何城市的名称(以英文)来获取该城市的天气预报。代码使用了`requests`库发送HTTP请求,并使用`BeautifulSoup`库进行网页解析。在函数`get_weather`中,我们根据天气预报网站的HTML结构,使用CSS选择器来选择所需的天气信息。函数返回一个包含天气预报信息的字符串,然后将该信息打印出来。
请注意,此代码示例仅为演示目的,可能会因为网站结构的更改而失效。在实际应用中,您可能需要根据具体的天气预报网站的HTML结构进行适当的调整。
阅读全文