注意:此代码仅用于学习!!!
要求:
输出:天气信息的屏幕输出(日期、天气描述、最高最低气温、风力等)
import requests as req
from bs4 import BeautifulSoup
def getHTMLText(url):
try:
h={'User-Agent':'Mozilla/5.0(Windows NT 10.0; Win64; x64)'
'AppleWebKit/537.36 (KHTML, like Gecko)'
'Chrome/79.0.3945.130 Safari/537.36 OPR/66.0.3515.115'}
r=req.get(url, headers=h)
print('--------------------------')
print(r.status_code)
print('--------------------------')
r.raise_for_status()
r.encoding=r.apparent_encoding
return '成功读取网页源代码'
except:
return '产生异常'
url = 'http://www.weather.com.cn/weather/101240101.shtml'
print(getHTMLText(url))
print('--------------------------')
r = req.get(url)
# 设置响应对象的编码方式为gbk
r.encoding = req.utils.get_encodings_from_content(r.text)[0]
html_content = r.text
soup = BeautifulSoup(html_content, 'html.parser')
# 输出获取到的内容
# print(html_content)
soup = BeautifulSoup(html_content, "lxml")
# 提取天气信息
weather_list = soup.select("li[class*='sky skyid lv']")
for weather in weather_list:
h1 = weather.find("h1").text
wea = weather.find("p", class_="wea").text
tem = weather.find("p", class_="tem").text
win = weather.find("p", class_="win").text
print(f"日期:{h1}")
print(f"天气:{wea}")
tem=tem.strip()
print(f"温度:{tem}")
win=win.strip()
print(f"风向风力:{win}")
print("----------")
下面是运行结果啦: