vlambda博客
学习文章列表

结合使用selenium和python,实现静态网页、多级网页以及动态网页的信息爬取

其中的过程适用于静态网页(豆瓣电影信息、哔哩哔哩评论区等)、动态页面(百度图片滚轮触发页面更新、下拉框触发页面更新等url不变但通过鼠标互动,致使信息更新等场景)的信息爬取。

1        Selenium安装

(1)pip install selenium

(2)edge为例,安装驱动。url:https://developer.microsoft.com/en-us/microsoft-edge/tools/webdriver/

(3)Selenium的网页信息定位主要使用xpath表达式,需要对其有所了解,利用edge中的扩展,可以极大的简化定位过程,但是不能取代个人工作,还是要对xpath有所了解,扩展如1

结合使用selenium和python,实现静态网页、多级网页以及动态网页的信息爬取

2        案例:以经合组织(OECD)为例,如1

url: https://stats.oecd.org/Index.aspx?DataSetCode=CS_BAROMETER#

结合使用selenium和python,实现静态网页、多级网页以及动态网页的信息爬取

最终结果:

原页面数据:

结合使用selenium和python,实现静态网页、多级网页以及动态网页的信息爬取

爬取到的数据(简洁起见,以international trade index为例,但是爬取的各个过程均有涉及,其他指标、数据以及网页只要做简单推广即可,这个流程基本可以实现所有网页信息的爬取):

结合使用selenium和python,实现静态网页、多级网页以及动态网页的信息爬取

3        流程

(1)需要的python库;

结合使用selenium和python,实现静态网页、多级网页以及动态网页的信息爬取

(2获取初始网页;

结合使用selenium和python,实现静态网页、多级网页以及动态网页的信息爬取

(3)展开指标栏,并选取international trade index

结合使用selenium和python,实现静态网页、多级网页以及动态网页的信息爬取

(4)将时间定位到2021年,其余时间不要;

结合使用selenium和python,实现静态网页、多级网页以及动态网页的信息爬取

(5)获取表头:年月/国家信息;

(6)获取指标信息;

Notice:

1.注意隐藏数据。利用xpth定位源代码时,明明没有任何问题,但python报错,显示无此元素,此时应注意是否是隐藏元素,查看是否在iframe内,上述代码中对这一问题做了处理;

2.注意每个网页的刷新时间,需根据时间设置time.sleep或者WebDriverWait;