当前位置:嗨网首页>书籍在线阅读

32-用selenium模块控制浏览器

  
选择背景色: 黄橙 洋红 淡粉 水蓝 草绿 白色 选择字体: 宋体 黑体 微软雅黑 楷体 选择字体大小: 恢复默认

12.8 用selenium模块控制浏览器

selenium 模块可让Python直接控制浏览器,实现方法是单击链接并填写登录信息,几乎就像人类用户与页面交互一样。与 requestsbs4 相比, selenium 允许你用高级得多的方式与网页交互。但因为它启动了Web浏览器,假如你只是想从网络上下载一些文件,会有点慢,并且难以在后台运行。

尽管如此,如果你与网页交互的方式依赖于更新网页的 JavaScript 代码,那么你就需要使用 selenium 而不是 requests 。这是因为像亚马逊这样的大型电商网站肯定会有软件系统来识别他们怀疑是脚本的流量,这些脚本可能会获取他们的信息或注册多个免费账户。这些网站可能会在一段时间后拒绝向你提供页面,让你编写的所有脚本失效。与 requests 相比, selenium 模块在这些网站上长期有效的可能性要大得多。

向网站“透露”你正在使用脚本的一种主要方式是 user-agent 字符串,它标识了Web浏览器,并包含在所有的HTTP请求中。例如, requests 模块的 user-agent 字符串是类似 'python-requests/2.21.0' 这样的东西。你可以访问一个网站查看你的 user-agent 字符串。使用 selenium ,你更有可能“作为人类允许通过”,因为 seleniumuser-agent 不仅和普通浏览器一样(例如, 'Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:65.0) Gecko/20100101 Firefox/65.0') ,而且它的流量模式也是一样的:一个由 selenium 控制的浏览器会像普通浏览器一样下载图片、广告、cookie和隐私入侵追踪器。不过, selenium 仍然可以被网站检测到,各大票务和电子商务网站通常会屏蔽由 selenium 控制的浏览器,以防止网页被抓取。