珠海网站建设方案优化,国内高端网站定制,计算机编程培训班,宣传山西的网页设计先根据城市名找到对应编码#xff0c;然后获取近七天天气情况
淄博 101120301 [‘20日#xff08;今天#xff09;’] [‘晴’] class ‘list’ [‘7℃’] [‘\n’, ‘3级’, ‘\n’] 淄博 101120301 [‘21日#xff08;明天#xff09;’] [‘晴转阴’] 然后获取近七天天气情况
淄博 101120301 [‘20日今天’] [‘晴’] class ‘list’ [‘7℃’] [‘\n’, ‘3级’, ‘\n’] 淄博 101120301 [‘21日明天’] [‘晴转阴’] class ‘list’ [‘20℃’, ‘8℃’] [‘\n’, ‘3级’, ‘\n’] 淄博 101120301 [‘22日后天’] [‘多云’] class ‘list’ [‘17℃’, ‘3℃’] [‘\n’, ‘3级’, ‘\n’] 淄博 101120301 [‘23日周四’] [‘晴’] class ‘list’ [‘8℃’, ‘-5℃’] [‘\n’, ‘3-4级转3级’, ‘\n’] 淄博 101120301 [‘24日周五’] [‘晴转多云’] class ‘list’ [‘5℃’, ‘-5℃’] [‘\n’, ‘3级’, ‘\n’] 淄博 101120301 [‘25日周六’] [‘阴转多云’] class ‘list’ [‘9℃’, ‘0℃’] [‘\n’, ‘3级’, ‘\n’] 淄博 101120301 [‘26日周日’] [‘晴’] class ‘list’ [‘12℃’, ‘-2℃’] [‘\n’, ‘3级’, ‘\n’]
import requests
import json
from lxml import etreecity_dic {}
text_mw 淄博
#将中文转置为字符
text_id str(text_mw.encode(utf-8)).upper().replace(\\X,%)[2:-1]
print(text_id,text_id)url http://toy1.weather.com.cn/search?cityname text_id
#设置请求头
header{User-Agent:Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/117.0.0.0 Safari/537.36 Edg/117.0.2045.43,Referer:http://www.weather.com.cn/, Cookie:Hm_lvt_080dabacb001ad3dc8b9b9049b36d43b1700397713; f_city%E6%B5%8E%E5%8D%97%7C101120101%7C; Hm_lpvt_080dabacb001ad3dc8b9b9049b36d43b1700398953
}
resp requests.get(urlurl,headersheader)
print(resp.status_code)data resp.text[1:-1]
json_data json.loads(data)[0][ref][0:9]
#获取城市对应编码
print(json_data)
#淄博 101120301
city_url http://www.weather.com.cn/weather/ json_data .shtml
print(city_url)
city_resp requests.get(urlcity_url,headersheader)
city_resp.encoding city_resp.apparent_encoding
html etree.HTML(city_resp.text)
node_all html.xpath(//ul[classt clearfix]/li)
#print(节点名称,[i.tag for i in node_all])
for node in node_all:day_text node.xpath(.//h1/text())wea_text node.xpath(.//p[classwea]/text())tem_text node.xpath(.//p[classtem]//text())for tem in tem_text:if tem in (/,\n):tem_text.remove(tem)win_text node.xpath(.//p[classwin]//text())for win in win_text:if win in (/,\n):win_text.remove(win)print(text_mw,json_data,day_text,wea_text,type(tem_text),tem_text,win_text)