Python爬虫技巧!网站有反爬?我们有selenium!

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

Selenium:

框架底层使用JavaScript模拟真实用户对浏览器进行操作。测试脚本执行时,浏览器自动按照脚本代码做出点击,输入,打开,验证等操作,就像真实用户所做的一样,从终端用户的角度测试应用程序。

  • 使浏览器兼容性测试自动化成为可能,尽管在不同的浏览器上依然有细微的差别。
  • 使用简单,可使用Java,Python等多种语言编写用例脚本。
  • 平时都在写爬虫代码,有的时候的遇到一些网站它们可不会乖乖就范哦,一般的都会有一些反爬措施的,再就是一些通过框架渲染出来的页面。
  • 对于这些网站,前者一般需要修改请求头、代理或者判断验证码等方可解决;后者由于网页信息是动态加载的, 常用的 Requests 库就显得有些无力了,拿不到渲染后的内容。

代码

安装 Selenium pip install selenium

下载驱动 :

大家自行搜索吧,网上很多的,我们选用火狐浏览器的驱动,最新版的好像不能使用,大家注意下,不行就下载次新的!下载好对应的浏览器驱动放到 Python 安装目录下就行

导入模块

创建Firefox对象:browser = webdriver.Firefox()

  • WebDriverWait() 这一行代码是传入一个WebDriver的实例,后面两个参数是超时时间和睡眠间隔
  • until() 是判断目标元素是否出现,代码中等待的是标签中 id="next" 的出现,网页中为下一页的标签,以此判断招聘信息已加载完毕
  • ps:若是无界面模式那一定要记得最后一行代码是必不可少的,不然浏览器你没关,你又看不见它这就很尴尬

运行效果如下:

参考文章:【learnaLanguage_YiZhou_Python:Selenium爬取动态网页】

selenium用途

通过上面的实例可以看到,通篇没有去考虑网站是否有反爬等等手段,这也是selenium做爬虫的一个优势,只要能打开并正常浏览的网页,都可以用它来做爬虫,不用考虑各种反爬,可以说是非常实用的手段了!

有喜欢的小伙伴可以私信我,一起交流哦!

原文发布于微信公众号 - 云飞学python(P542110741)

原文发表时间:2018-07-17

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

发表于

我来说两句

0 条评论
登录 后参与评论

相关文章

来自专栏田超学前端

微信小程序 navigator 组件跳转小程序或者小游戏(二)

其实,也就是只能获得固定的值,为什么这么说呢,因为我就踩了坑,一个巨大到用了我一下午时间还没整明白的坑。。汗!

5054
来自专栏腾讯NEXT学位

JavaScript全栈开发-工具篇(下)

? 文章目录 ? 四、测试工具 1. 单元测试 单元测试(unit testing),是指对软件中的最小可测试单元进行检查和验证。常见的单元测试工具有: * ...

1312
来自专栏卡少编程之旅

React项目的服务端渲染改造(koa2+webpack3.11)

4447
来自专栏Windows Community

Windows 8.1 应用再出发 - 创建我的第一个应用

转眼间Windows 8.1已经发布了四个多月,之前因为开发需要对Windows 8.1新特性进行过零散的学习和使用,一直没有静下心来系统的学习过。近日部门有几...

36612
来自专栏FreeBuf

漏洞追踪:最新IE UXSS漏洞技术分析

最近David Leo在Full Disclosure上爆出了一个ie的 uxss 漏洞,可以绕过ie的同源策略。FreeBuf也有相关的报道(点我查看)。本文...

2077
来自专栏魏艾斯博客www.vpsss.net

宝塔 linux 面板常见问题解答

7995
来自专栏守候书阁

[杂谈]了解一些额外知识,让前端开发锦上添花

在前端学习里面,很多人都是注重学习代码(html,css,js)。或者是一些框架,库(jquery,vue,react),或者是各种工具(webpack,gul...

1123
来自专栏Python中文社区

优雅的在终端中编写Python

專 欄 ❈PytLab,Python 中文社区专栏作者。主要从事科学计算与高性能计算领域的应用,主要语言为Python,C,C++。熟悉数值算法(最优化方法,蒙...

3317
来自专栏计算机编程

【vue随手笔记】Vue与ios UIwebview 和 Android webview 交互

8063
来自专栏Jerry的SAP技术分享

SAP CRM和C4C的客户主数据修改历史记录查询

Change History assignment block里显示出了这条修改记录:

3222

扫码关注云+社区

领取腾讯云代金券