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抓取动态网页】


