太原在线网站建设,石家庄住房和城乡建设厅官方网站,上海专业网站建设服务,哈尔滨百度网络推广本篇文章给大家谈谈如何用python爬取天气预报#xff0c;以及python查询天气预报的代码#xff0c;希望对各位有所帮助#xff0c;不要忘了收藏本站喔。 Source code download: 本文相关源码 今天给大家带来的Python实战项目是四行Python代码获取所在城市的天气预报#xf…本篇文章给大家谈谈如何用python爬取天气预报以及python查询天气预报的代码希望对各位有所帮助不要忘了收藏本站喔。 Source code download: 本文相关源码 今天给大家带来的Python实战项目是四行Python代码获取所在城市的天气预报我们隐隐听到唏嘘声不信四行Python代码可以获取是吗?那我们一起来看看 使用Python获取天气预报想想是件很简单的事情。无非是发送一个HTTP请求再解析请求返回的结果python编程代码画哆啦a梦。当你真的使用Python程序去获取天气预报以后会发现有不少坑在等着你。这里简单记录一下我遇到的坑供大家参考。 如何获取 使用Python获取天气有两种不同的方法一种是像平时爬虫一样获取天气预报网站的HTML页面再使用XPath或BeautifulSoup解析HTML页面的内容。这是比较传统的爬虫方式。此外还有另外一种比较合适的方法——通过天气预报网站提供的API。通过API直接获取结构化的数据省去了解析HTML的烦恼。 使用API 搜索”天气预报 API”这两个关键字会有很多相关的内容例如这个 https:/ python -c import requests /http://wwwzhihu.com/question/20575288 答案下就列出了不少提供API访问天气预报的网站。 然而大部分都已经不可用了。部分可用的需要收费或者需要注册都比较麻烦。有没有比较省事的方案呢?找来找去我找到了中国天气网的API。无需注册直接可用返回json格式的数据无需使用BeautifulSoup或XPath解析非常的方便。赞! 例如可以直接访问下面的地址在浏览器中查看中国天气网返回的json数据 http://www.weather.com.cn/data/sk/101020100.html 有了API处理起来就很简单了直接使用Python世界最知名的requests访问API即可。 安装requests pip install requests 检查安装是否成功 python -c “import requests” 使用ipython测试 In [1]: import requests
In [2]: r requests.get(http://www.weather.com.cn/data/sk/101020100.html)
In [3]: r.status_code
Out[3]: 200
In [4]: r.content
Out[4]: {weatherinfo:{city:䏿µ·,cityid:101020100,temp:15,WD:ä¸é£,WS:1级,SD:50%,WSE:1,time:17:08,isRadar:1,Radar:JC_RADAR_AZ9210_JB,njd:ææ å®åµ,qy:1020,rain:0}}
In [5]: r.json()
Out[5]: {uweatherinfo: {uRadar: uJC_RADAR_AZ9210_JB,uSD: u50%,uWD: uä¸é£,uWS: u1级,uWSE: u1,ucity: u䏿µ·,ucityid: u101020100,uisRadar: u1,unjd: uææ å®åµ,uqy: u1020,urain: u0,utemp: u15,utime: u17:08}} requests库包含一个名为json的方法当请求的地址返回的是json格式的数据时直接使用该方法访问即可无需使用标准库的json库。 解决乱码 如果大家刚才在浏览器中打开了我给的地址会发现输出结果是乱码的。如下所示 我们可以在ipython中查看数据编码 哈喽小伙伴由于限制教程不能直接发送 我整理了小白需要的资源包-pythonpycharm安装包激活码爬虫工具项目源码小白学习资料获取-下方链接 https://b23.tv/aDfZSUe 秒发秒通过 [星星眼][星星眼] 最近up有收到私信 好多其他up冒充我私信大家 也是非常抱歉 给你们带来不好的感受了 你们一定 要注意分辨哦 In [6]: r.encoding
Out[6]: ISO-8859-1 我们知道乱码是因为解码的字符集与编码的字符集不一样所以才会有乱码。那么我们怎么知道数据的编码字符集呢?这个时候就靠猜了。众所周知utf-8因为各种优点(如果大家感兴趣我可以写一篇字符集编码的文章)是使用最广泛的字符集编码因此我们可以尝试使用utf-8进行解码。如下所示 In [7]: r.json()[weatherinfo][city]
Out[7]: u䏿µ·
In [8]: 䏿µ·.decode(utf-8)
Out[8]: u上海
In [9]: print 䏿µ·.decode(utf-8)
上海 可以看到使用utf-8解码以后可以正确的显示数据。也就是说中国天气网返回给我们的数据应该是utf-8格式的。那么为什么会乱码呢?这可能是中国天气网的工程师水平不行也可能是故意不想让我们使用谁知道呢。 我们已经知道了正确的编码接下来只要将相应的数据使用utf-8格式解码即可。requests库本身提供了这样的功能如下所示 In [10]: r.encoding utf-8
In [11]: print r.json()[weatherinfo][city]
上海 获取不同城市的天气预报 前面的例子获取的是上海的天气预报。如果想要使用中国天气网的API获取其他城市的天气预报呢?中国天气网并没有提供相应的接口我们只能自己想办法。 在我们测试的URL中101020100是城市的代码我们只需要找到其他城市的代码将101020100替换成相应的代码即可。查找方法是在中国天气网的首页搜索城市的名称地址栏中会显示相应城市的代码。如下所示 4 行Python代码获取天气预报 使用Python获取天气预报的例子中我们的主要任务在于找到相应的API解决字符集编码问题。当这些问题解决以后直接使用requests库获取天气预报即可。下面是获取所在城市天气预报的4行Python代码 In [1]: import requests
In [2]: r requests.get(http://www.weather.com.cn/data/sk/101020100.html)
In [3]: r.encoding utf-8
In [4]: print r.json()[weatherinfo][city], r.json()[weatherinfo][WD], r.json()[weatherinfo][temp]知道你对python感兴趣所以给你准备了下面的资料~ 这份完整版的Python全套学习资料已经上传朋友们如果需要可以点击链接免费领取或者滑到最后扫描二v码保证100%免费】 python学习资源免费分享保证100%免费 需要的话可以点击这里Python学习路线2023修正版附涉及资料 安全链接放心点击 文末有福利领取哦~ 一、Python所有方向的学习路线 Python所有方向的技术点做的整理形成各个领域的知识点汇总它的用处就在于你可以按照上面的知识点去找对应的学习资源保证自己学得较为全面。 二、Python必备开发工具 三、精品Python学习书籍 当我学到一定基础有自己的理解能力的时候会去阅读一些前辈整理的书籍或者手写的笔记资料这些笔记详细记载了他们对一些技术点的理解这些理解是比较独到可以学到不一样的思路。 四、Python视频合集 观看零基础学习视频看视频学习是最快捷也是最有效果的方式跟着视频中老师的思路从基础到深入还是很容易入门的。 五、实战案例 光学理论是没用的要学会跟着一起敲要动手实操才能将自己的所学运用到实际当中去这时候可以搞点实战案例来学习。 六、Python练习题 检查学习结果。 七、面试资料 我们学习Python必然是为了找到高薪的工作下面这些面试题是来自阿里、腾讯、字节等一线互联网大厂最新的面试资料并且有阿里大佬给出了权威的解答刷完这一套面试资料相信大家都能找到满意的工作。 这份完整版的Python全套学习资料已经上传朋友们如果需要可以扫描下方CSDN官方认证二维码或者点击链接免费领取【保证100%免费】Python学习路线2023修正版附涉及资料《Python学习资料》已经打包好了自取【ps需要领取的资料请备注清楚查找与发送给你】。因链接常https://mp.weixin.qq.com/s/UVxw0daFCgAMFhz9cfrjAQhttps://mp.weixin.qq.com/s/UVxw0daFCgAMFhz9cfrjAQ