需要爬取全国各省会城市的历史天气
请问那里还有不对的吗?
需要怎么改?
明显的语法问题
headers = {'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/67.0.3396.99 Safari/537.36'}
内容正是我们想要的,但是排版不够整齐。原因是 ulist 的内容里面含有换行符。
把ulist里面的换行符用 .replace() 方法替换掉,就不会有换行的问题了。
要使用Python爬取全国各省会城市的历史天气数据,可以按照以下步骤进行操作:
import requests
from bs4 import BeautifulSoup
def get_weather_data(city):
url = f"https://www.tianqi.com/{city}/"
response = requests.get(url)
if response.status_code == 200:
soup = BeautifulSoup(response.content, 'html.parser')
weather_data = soup.find_all('li', class_='sky')
for item in weather_data:
date = item.find('h1').text
weather = item.find(class_='wea').text
temperature = item.find(class_='tem').text
print(f"日期:{date},天气:{weather},温度:{temperature}")
else:
print("请求失败")
get_weather_data("beijing")
以上代码会爬取北京的天气数据并打印输出,你可以根据需要修改函数中的URL和输出方式。
请注意,该代码仅适用于特定的网站结构和数据,如果你需要爬取其他网站的天气数据,可能需要根据具体网站的HTML结构进行相应的修改。另外,请遵守网站的爬虫规则,不要对网站进行恶意访问,以免触犯法律规定。如果你需要大规模爬取数据,建议提前与网站所有者联系并获得授权。