微信号:Python_xiaowu

介绍:清华出版社《Python程序设计》系列教材作者董付国的Python小屋.介绍Python基础语法知识、标准库、扩展库知识,探讨Python在各领域的应用.

Python爬虫系列:使用selenium+Edge查询指定城市天气情况

2018-03-14 08:13 董付国

首先发个福利,有个网店正在推出特价优惠《Python程序设计开发宝典》,原价69.0元,特价46.92元,详情查看:https://detail.tmall.com/item.htm?id=561815917114&ali_refid=a3_430583_1006:1121676698:N:Python



=======分割线======

话说,国外有个网站http://openweathermap.org/可以免费查询指定城市的当前天气情况:

那是不是可以写个爬虫程序,自动调用网站的功能来实现天气查询呢?毕竟在网页上已经清清楚楚地显示了这些数据。按惯例,查看源码,却发现啥也木有。

再仔细检查,发现这个网站是使用JavaScript动态获取并显示天气数据的:


继续查找和分析,原来数据都是在这里的。

看起来好像很麻烦的样子,还是换个思路吧,等有时间再慢慢分析如何提取这样的数据。回到网站首页,发现该网站还提供了API接口,可以直接调用并以JSON格式返回指定城市的天气数据,但是需要首先拥有一个API key才行:

如何获取这个API key呢,答案是注册一个账号:

然而,注册账号时会调用google的验证服务,除非采取特殊手段,否则不会成功,原因不解释。

两条路都不太顺畅啊,还是再换个思路吧。按道理讲,只要是在网页上显示出来的数据,理论上都应该是可以提取出来的。如果能够模拟浏览器的渲染过程,得到渲染后的前端代码,应该就可以了。

那么怎么模拟呢?让我们拿出一个大杀器,selenium,通过这个扩展库可以驱动几个主流浏览器并调用其功能,这里我们选择使用Edge。

首先,查看一下本地计算机Windows操作系统的内部版本号,以我的Win10为例,步骤为:依次单击开始==>设置==>系统==>关于,找到下图中的操作系统内部版本号:

然后打开网址https://developer.microsoft.com/en-us/microsoft-edge/tools/webdriver/,下载合适版本的驱动,并放到Python安装目录下:

接下来,来到命令提示符环境,使用pip安装扩展库selenium:

最后编写如下Python代码,查询指定城市的天气情况:

上面代码中的正则表达式是根据driver.page_cource的内容编写的,可以自行分析并逐步尝试,代码运行结果如下(运行过程会稍微慢一点):

和网页上的数据对比一下:

内容完全一致。当然,如果使用更整洁的格式查看天气数据,可以使用正则表达式从程序结果中进行二次提取,不再赘述。



----------相关阅读----------

教学课件

1900页Python系列PPT分享一:基础知识(106页)

1900页Python系列PPT分享二:Python序列(列表、元组、字典、集合)(154页)

1900页Python系列PPT分享三:选择与循环结构语法及案例(96页)

1900页Python系列PPT分享四:字符串与正则表达式(109页)

1900页Python系列PPT分享五:函数设计与应用(134页)

1900页Python系列PPT分享六:面向对象程序设计(86页)

1900页Python系列PPT分享七:文件操作(132页)

1900页Python系列PPT分享八:异常处理结构与程序调试、测试(70页)

报告PPT(163页):基于Python语言的课程群建设探讨与实践


系列题库分享

1000道Python题库系列分享一(17道)

1000道Python题库系列分享二(48道)

1000道Python题库系列分享三(30道)

1000道Python题库系列分享四(40道)

1000道Python题库系列分享五(40道)

1000道Python题库系列分享六(40道)

1000道Python题库系列分享七(30道)


随机分享的技术文章

Python爬虫系列:判断目标网页编码的几种方法

BeautifulSoup解析库select方法实例——获取企业信息

Python批量爬取微信公众号文章中的图片

Python裸奔也疯狂:批量爬取中国工程院院士信息

Python爬虫扩展库scrapy选择器用法入门(一)

Python使用Scrapy爬虫框架爬取天涯社区小说“大宗师”全文

Python不使用scrapy框架而编写的网页爬虫程序

Python爬虫扩展库BeautifulSoup4用法精要


闲聊

又一个学期结束了,送给在校大学生几句话

淡定!不要因为纳入了高考和二级考试甚至极个别小学课程就盲目夸大Python!

全国计算机等级考试二级Python考试大纲预测和分析

大家都在学Python,你和别人的差距在哪?

大学生们颤抖吧,中学生已经开始学Python了!

祝所有程序员1024节日快乐

学会提问,你就成功了一大半!

盘点那些让人上火的提问方式(论如何让交流更高效)



----------喜大普奔----------

1、董付国老师Python系列教材:

《Python程序设计基础》(2018年2月第6次印刷)

《Python程序设计(第2版)》(2018年2月第5次印刷)

《Python可以这样学》(2018年2月第5次印刷)(本书已被引入台湾发行繁体版)

《Python程序设计开发宝典》(2018年2月第3次印刷)

《中学生可以这样学Python》

《Python程序设计基础(第2版)》(2018年3月隆重上市)

董付国老师6本Python系列图书阅读指南

董付国老师6本Python系列教材被北大、复旦等近百所高校选作教材

热烈庆祝《Python可以这样学》在台湾发行繁体版


2、董老师120课免费视频地址: https://pan.baidu.com/s/1jJeAs8Q 密码: px59


3、董老师CSDN学院9套“Python可以这样学”收费视频课程汇总地址:https://edu.csdn.net/search?keywords=%E8%91%A3%E4%BB%98%E5%9B%BD&type=0


4、特价优惠《Python程序设计开发宝典》,原价69.0元,特价46.92元,详情查看:https://detail.tmall.com/item.htm?id=561815917114&ali_refid=a3_430583_1006:1121676698:N:Python


5、清华大学出版社天猫官方旗舰店《Python程序设计开发宝典》链接地址:https://detail.tmall.com/item.htm?spm=a1z10.3-b-s.w4011-16232114860.46.77eb2226Ms78gk&id=556093887133&rn=daa7a825dfe5d116984370c18d842af7&abbucket=4



 
Python小屋 更多文章 Python文件操作小案例:交替合并两个记事本文件 Python函数式编程小案例:文本加密 1000道Python题库系列分享七(30道) 1000道Python题库系列分享六(40道) Python爬虫系列:判断目标网页编码的几种方法
猜您喜欢 解密Siri背后的深度听觉! SNIA持久化内存峰会:虚拟机、数据库、SDS进展曝光 携程无线离线包增量更新方案实践 greenplum导入数据的几种方法 毁灭程序员的15个障碍