这篇教程python selenium禁止加载某些请求的实现写得很实用,希望能帮到您。
问题描述通过selenium请求目标网站时候, 真实数据(我这里是验证码图片)已经加载出来, 由于网站做了第三方上报所以得等待很久, 但是上报这个请求不是必须的. 例如 验证码已经加载完成, 但是huatuo.qq.com响应时间过长 , webdriver.get()的机制是等待请求的url响应全部完成才进行下一步. 显示等待和隐式等待的作用是每隔多少秒来检测一下这个地址是否加载完成, 所以此处不生效. 那我要做的是: 当请求目标url时候, 希望webdriver不上报或者屏蔽huatuo.qq.com…这样就能节省大量时间, 从而进行下一步操作 
解决方案在通过selenium打开目标url后, 植入js插件, 通过插件来屏蔽上报url 配置selenium属性, 添加屏蔽规则 chrome_options.add_argument('--host-resolver-rules=MAP report.huatuo.qq.com 127.0.0.1') 最终效果 
这样就能专注于目标url, 更快的执行下一步. 其他属性配置 options.add_argument(‘headless') # 无头模式options.add_argument(‘window-size={}x{}'.format(width, height)) # 直接配置大小和set_window_size一样options.add_argument(‘disable-gpu') # 禁用GPU加速options.add_argument(‘proxy-server={}'.format(self.proxy_server)) # 配置代理options.add_argument(' python爬取bilibili网页排名,视频,播放量,点赞量,链接等内容并存储csv文件中 Python将视频转换为图片介绍 |