200字范文,内容丰富有趣,生活中的好帮手!
200字范文 > python3 采集 中国天气网 七天预报和当天生活指数

python3 采集 中国天气网 七天预报和当天生活指数

时间:2019-02-11 19:49:03

相关推荐

python3 采集 中国天气网 七天预报和当天生活指数

python3 采集 中国天气网 七天预报和当天生活指数

数据格式

{“index”: [{“title”: “紫外线指数”, “level”: “最弱”, “desc”: “辐射弱,涂擦SPF8-12防晒护肤品。”}, {“title”: “减肥指数”, “level”: 1, “desc”: “雨雪相伴湿冷天,坚持室内低强度运动。”}, {“title”: “血糖指数:”, “level”: “不易波动”, “desc”: “天气条件不易引起血糖波动。”}, {“title”: “穿衣指数”, “level”: “寒冷”, “desc”: “建议着厚羽绒服等隆冬服装。”}, {“title”: “洗车指数”, “level”: “不宜”, “desc”: “有雪,雪水和泥水会弄脏爱车。”}, {“title”: “空气指数”, “level”: “良”, “desc”: “气象条件有利于空气污染物扩散。”}], “sevendays”: [{“date”: “16日(今天)”, “wea”: “小雪转多云”, “wea_coded”: “d14”, “wea_coden”: “n01”, “tem_low”: “-3℃”, “tem_high”: “3℃”, “win_speed”: “<3级转3-4级”, “win”: [“西南风”, “北风”]}, {“date”: “17日(明天)”, “wea”: “晴”, “wea_coded”: “d00”, “wea_coden”: “n00”, “tem_low”: “-6℃”, “tem_high”: “7℃”, “win_speed”: “3-4级转<3级”, “win”: [“北风”, “北风”]}, {“date”: “18日(后天)”, “wea”: “晴”, “wea_coded”: “d00”, “wea_coden”: “n00”, “tem_low”: “-6℃”, “tem_high”: “3℃”, “win_speed”: “<3级”, “win”: [“南风”, “北风”]}, {“date”: “19日(周四)”, “wea”: “晴”, “wea_coded”: “d00”, “wea_coden”: “n00”, “tem_low”: “-8℃”, “tem_high”: “6℃”, “win_speed”: “3-4级转<3级”, “win”: [“北风”, “东北风”]}, {“date”: “20日(周五)”, “wea”: “晴”, “wea_coded”: “d00”, “wea_coden”: “n00”, “tem_low”: “-8℃”, “tem_high”: “1℃”, “win_speed”: “<3级”, “win”: [“南风”, “北风”]}, {“date”: “21日(周六)”, “wea”: “晴转多云”, “wea_coded”: “d00”, “wea_coden”: “n01”, “tem_low”: “-6℃”, “tem_high”: “3℃”, “win_speed”: “<3级”, “win”: [“西北风”, “北风”]}, {“date”: “22日(周日)”, “wea”: “多云转阴”, “wea_coded”: “d01”, “wea_coden”: “n02”, “tem_low”: “-7℃”, “tem_high”: “2℃”, “win_speed”: “<3级”, “win”: [“东北风”, “西南风”]}]}

python代码

import sysimport requestsfrom lxml import htmldef get_content(code='101191204'):url = '/weather/%s.shtml' % codereturn requests.get(url).content# 生活指数def shzs():l = []for i in sel.xpath('//ul[@class="clearfix"]'):# 防晒指数span_title='紫外线指数:'span_intension = i.xpath('li[1]/span/text()')[0]span_product = i.xpath('li[1]/p/text()')[0]if len(span_intension) == 1:span = span_title + span_intension + ''+ span_productelse:span = span_title + span_intension + ' '+ span_product# 减肥指数jianfei_title='减肥指数:'jianfei_intension =''jianfei_product = i.xpath('li[2]/a/p/text()')[0]if len(span_intension) == 1:jianfei = jianfei_title + jianfei_intension + ''+ jianfei_productelse:jianfei = jianfei_title + jianfei_intension + ' '+ jianfei_product# 血糖指数:xuetang_title='血糖指数:'xuetang_intension = i.xpath('li[3]/span/text()')[0]xuetang_product = i.xpath('li[3]/p/text()')[0]if len(span_intension) == 1:xuetang = xuetang_title + xuetang_intension + ''+ xuetang_productelse:xuetang = xuetang_title + xuetang_intension + ' '+ xuetang_product# 穿衣指数 dress_intension = i.xpath('li[4]/a/span/text()')[0]dress_sug = i.xpath('li[4]/a/p/text()')[0]if len(dress_intension) == 2:dress = '穿衣指数:' + dress_intension + '' + dress_sugelse:dress = '穿衣指数:' + dress_intension + ' ' + dress_sug# 洗车指数car_title='洗车指数:'car_intension = i.xpath('li[5]/span/text()')[0]car_product = i.xpath('li[5]/p/text()')[0]if len(span_intension) == 1:car = car_title + car_intension + ''+ car_productelse:car = car_title + car_intension + ' '+ car_product# 空气指数air_condition = i.xpath('li[6]/span/text()')[0]air_product = i.xpath('li[6]/p/text()')[0]air = '空气指数:' + air_condition+''+air_productt = (span,jianfei,xuetang, dress,car, air)l.append(t)return l# 获取温度def get_tem(top, index):tem_low = top.xpath('li[%d]/p[@class="tem"]/i/text()' % index)[0]if len(top.xpath('li[%d]/p[@class="tem"]/span' % index)) != 0:tem_high = top.xpath('li[%d]/p[@class="tem"]/span/text()' % index)[0] + '℃'return tem_low + ' ~' + tem_highelse:return tem_low# 预测未来几天的天气和生活指数def predict_days(days):for i in range(1, days+1):# 日期date = top.xpath('li[%d]/h1/text()' % i)[0]# 天气weather = top.xpath('li[%d]/p[@class="wea"]/text()' % i)[0]weathercodestr=top.xpath('li[%d]/big/@class' % i)[0]weathercodearr=weathercodestr.split(' ')weathercode=weathercodearr[1]# 温度tem = get_tem(top, i)# 风力win_speed = top.xpath('li[%d]/p[@class="win"]/i/text()' % i)[0]win = top.xpath('li[%d]/p[@class="win"]/em/span/@title' % i)print("日期:%s\n天气:%s\n天气代码:%s\n温度:%s\n风力:%s\n风向:%s" % (date, weather, weathercode,tem, win_speed,win))life_condition = shzs() for index in range(6):print(life_condition[i-1][index])print('==============================================')if __name__ == "__main__":city = {"秦皇岛":'101091101',"淄川":'101120302',"北京":'101010100'}if len(sys.argv) == 2:city_code = city[sys.argv[1]]content = get_content(city_code)else:content = get_content()sel = html.fromstring(content)top = sel.xpath('//ul[@class="t clearfix"]')[0] # 忘记写 [0] top 类型为listsuggestions = sel.xpath('//ul[@class="clearfix"]')[0]predict_days(7)

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。