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 sys
import requests
from lxml import htmldef get_content(code='101191204'):url = 'http://www.weather.com.cn/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)

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

  1. php 当地天气预报,PHP实现采集中国天气网未来7天天气

    这篇文章主要介绍了PHP实现采集中国天气网未来7天天气方法,本文详细的讲解了需求的实现,也可以做为学习PHP采集的入门教程,需要的朋友可以参考下 前言 我们在写一个Web程序的时候,总会想着把自己的网 ...

  2. 简单的爬取中国天气网某个城市七天的天气预报数据

    首先需要了解需要爬取的数据的网页的结构,其结构如下图所示(只截取了部分): 从图中可以看出每一天的天气数据都被一个<li></li>包含,这七天的数据又都包含在一个<ul ...

  3. 天气预报API接口 : 城市对应码(中国天气网)

    文章目录 天气预报接口api(中国天气网) 中国天气网城市代码: 相关阅读 · 资源: 天气预报接口api(中国天气网) 中国天气 weather.com http://m.weather.com.c ...

  4. php天气城市切换怎么实现,PHP 调用接口生成天气预报 三级联动城市列表 仿中国天气网界面...

    网上找了很多天气接口的文章,大都是只介绍,很难找到成品,用PHP开发了一个,效果如下,共享一下! 程序使用 PHP 实现,通过调用中国国家气象局网站提供的天气接口,生成未来六天的天气预报和当前的实时天 ...

  5. 中国天气网 天气预报API 国家气象局 根据城市名称抓取城市ID,XML格式、JSON格式、图片代码...

    为什么80%的码农都做不了架构师?>>>    说到开发天气预报,就需要找一个开放接口了,接口有很多,不过个人觉得,中国天气网的数据比较准确,而且也有权威性.访问地址 如:http: ...

  6. 中国天气网接口说明及城市编码全部 为天气开发做铺垫

    中国天气网接口及城市编码全部 为天气开发做铺垫 中国天气网接口: 6天预报:http://m.weather.com.cn/data/101010100.html 实时预报:http://www.we ...

  7. 中国天气网接口返回json格式分析及接口(XML、图片接口)说明!

    手机天气插件更新数据时某些天气插件更新时流量有点儿消耗稍大,所以还是自己动手丰衣足食啊,未来7天返回的流量(当然这个要看具体天气和生活指数里返回的大小了关键是生活指数) 实时的: 中国天气网返回未来7 ...

  8. 中国天气网接口返回json格式分析及接口(XML 图片接口)说明

    手机天气插件更新数据时某些天气插件更新时流量有点儿消耗稍大,所以还是自己动手丰衣足食啊,未来7天返回的流量(当然这个要看具体天气和生活指数里返回的大小了关键是生活指数) 实时的: 中国天气网返回未来7 ...

  9. 中国天气网接口类(中国天气预报)

    新写的中国天气网api接口类,分享给大家(妈妈再也不用担心我出门被天气君欺负了). 只需修改两个参数($private_key.$appid)即可使用,这两个参数从中国天气网获取,地址是; http: ...

最新文章

  1. mac 使用svn记录
  2. android异常信息,Android 获取设备信息 异常
  3. Android VNC Server New
  4. KMP算法、AC自动机算法的原理介绍以及Python实现
  5. linux进程fd数量,linux – 文件描述符的数量:/ proc / sys / fs / file-nr和/ proc / $pid / fd之间有什么不同?...
  6. 一个声明被new多次
  7. C#:获取Web.config中数据库连接地址
  8. git pull没有更新成功_git冲突平滑解决的巧方法
  9. Android学习视频Mars-Android开发视频教程(全集)
  10. Java接口自动化测试框架
  11. Linux之socket网络编程(全)
  12. 开源中国软件频道_编程小黑马
  13. 计算机的冷门知识课件,PPT竟然还能这么玩!7组超实用冷门PPT小技巧
  14. Enterprise Architect安装包及教程
  15. python控制ppt翻页_详解Python操作PPT的各种骚操作!
  16. 关于Ubuntu14.04拼音不能正常使用的解决方案
  17. 网页上播放微信录音amr文件方案
  18. 网络变压器、网络通讯用磁性器件的要求和发展趋势
  19. SPSS Modeler 多元线性回归分析(指南 第九章)
  20. 高新的技术对不对_同样是申请高新技术企业认定,为什么你会失败?

热门文章

  1. Java小白必会!Intellij IDEA安装、配置及使用详细教程
  2. 为用户设计舒适的姿势
  3. Multi-Object Tracking with Multiple Cues and Switcher-Aware Classification 论文笔记
  4. 洛谷 P3338【FFT】
  5. CS目前有哪些热门的研究方向和应用?
  6. 安全联网设备客户端登录
  7. FreeSwitch调试小技巧
  8. python操作excel求和,Python 对Excel求和、合并居中的操作
  9. 职称计算机考试用友u8试题答案,2013年职称计算机考试用友U8模拟试题及答案(8)...
  10. 9.数字处理类(遗留)