爬取动态网页网页数据的目的

核心提示Selenium 是一个用于Web应用程序测试的工具。Selenium测试直接运行在浏览器中,就像真正的用户在操作一样。Selenium:框架底层使用JavaScript模拟真实用户对浏览器进行操作。测试脚本执行时,浏览器自动按照脚本代码做

Selenium是用于Web应用程序测试的工具。Selenium测试直接在浏览器中运行,就像一个真实的用户在操作它一样。

硒:

框架底层使用Javascript来模拟真实用户在浏览器上的操作。执行测试脚本时,浏览器会像真实用户一样,根据脚本代码自动进行点击、进入、打开、验证等操作,从最终用户的角度对应用进行测试。使自动化浏览器兼容性测试成为可能,尽管在不同的浏览器中仍然有细微的差别。简单易用,用例脚本可以用Java,Python等语言编写。

平时都在写爬虫代码,有时候也不会提交给一些网站。一般会有一些反抓取的措施,然后还有一些通过框架渲染的页面。对于这些网站,前者一般需要修改请求头、代理或判决验证码才能解决;因为后者的网页信息是动态加载的,所以常用的Requests库有些弱,无法获取渲染的内容。

然后,我就去硒。这次我就用这个库来抓取腾讯的招聘信息。

操作环境:

系统:Windows平台版本:3.6

代码如下:

安装Selenium

下载驱动程序

Ps:只能用图片展示,但很多在网上很容易找到。只需下载相应的浏览器驱动,放在Python安装目录下即可。

导入相关模块

创建Firefox参数对象

将Firefox设置为无界面模式,并自动适应相应的参数。

创建Firefox无用户界面的对象

Ps:如果不加参数,会弹出浏览器。比如这个演示,如果添加了参数,浏览器就不会显示,但这需要前两行代码的配合。

请求,这个URL直接取自浏览器,去掉了一些不必要的参数。

这一行代码是WebDriverWait的一个实例。最后两个参数是timeout和sleep interval,直到判断目标元素是否出现。代码等待标签中id="next "的出现,以及网页中下一页的标签,从而判断招聘信息已经加载。

Ps:如果没有界面模式,需要记住最后一行代码必不可少,否则让浏览器开着看不到就尴尬了。

操作效果如下:

作者也是在学习,难免会有错漏。请给出您的意见或建议。谢谢大家!转载请注明:【learn language _ Yizhou _ Python:Selenium抓取动态网页】

 
友情链接
鄂ICP备19019357号-22