爬取网页思路的改变–selenuim的介绍和基本使用
在爬虫领域,网页可以分为主体内容全部出现在HTML的【静态网页】和主题内容需要通过执行JavaScript才能显示的【动态网页】。
假设爬虫程序需要爬取:2020中国大学排名
当你访问该网站时,细心的你会发现在点击第二页、第三页…,页面是局部刷新的,且网址不会变化,这时候使用【requests】库访问,**只能获取*第一页的数据,后面的18页是无法获取的。
这时候需要了解:爬虫程序、浏览器和WebDriver的关系,可浏览相关网页,此处略去。。。
以下为重点:
selenium是一个程序,国外大神团队造好的“轮子”,本质上是成熟稳定的WebDriver程序,并在此基础上提供了丰富的功能。它还是一款开源的浏览器自动化项目,提供了一整套指令接口。我们使用它就可与将指令发送个浏览器,有浏览器执行具体操作,网页渲染好后,抓取相应字段。
传送门:https://www.selenium.dev/ (轮子下载地址)
提示:开始实践前请按照Selenium官方文档安装Selenium并下载对应浏览器的WebDriver。
元素定位方式(如下-图1):
下面对该网址所有涉及【学校名称,如清华大学等字段】共567所学校进行抓取。
只要导入两个包即可。。。
有效代码不到30行。。
可自行实践,基本语法,欢迎评论区留言,有注意事项很多没来得及写(留言看到就回~~)。
简短介绍:
- 导入selenium库、xlwt库(可选);
- 定义一个函数parselweb,传入两个参数,url和school_info;
- 驱动浏览器,打开url链接,css_selector选择器找到网页页码对应的css元素(如图2),设定For制造循环(嵌套if语句去掉第“0”页;(调用方法:find_element_by_css_selector(),eleme