Python+Selenium爬虫访问百度出现百度安全验证的解决办法

Python与SEO 思享 617浏览 0评论

新的一年刚开始,百度又有更新了。今天早上刚起床,开始了今天的学习之路。返现了一个有趣的事,和大家分享解决一下。

Chrome驱动打开百度时发现需要进行安全验证。而且看到验证的方式还特别新奇,如下图需要图片方正。
解决方法:可以通过隐藏WebDriver提示条和自动化扩展信息来跳过验证。

  1. from selenium import webdriver
  2. from selenium.webdriver import ChromeOptions
  3. option=ChromeOptions()
  4. option.add_experimental_option('excludeSwitches',['enable-automation'])
  5. option.add_experimental_option('useAutomationExtension',False)
  6. brw=webdriver.Chrome(options=option)
  7. brw.execute_cdp_cmd("Page.addScriptToEvaluateOnNewDocument",{'source':'Object.defineProperty(navigator,"webdriver",{get:()=>undefind})'})
  8. brw.get("http://www.baidu.com")

注:学习之路永无止境,代码借鉴了爬虫相关的书籍。

推荐阅读

百度翻译是errno: 1022什么原因

因为百度免费的API额度调整,不得不使用在线翻译的接口,刚好网上也有很多JS逆向的实现方案。之前用着感觉没问题,可以是突然之间就不行了,不返回errno: 1022。通过搜索最终找到了答案 解决办法 百度翻译新增了一个请求头参数 Acs-Token,......

百度账号已支持修改用户名,该怎么改

8月7日消息,近期,百度帐号已开始测试支持修改用户名,需要在百度App里操作,用户名是百度帐号的唯一凭证,一年只能修改一次. 修改条件 一年内没有修改过用户名 账号已完成帐号风险评估 无敏感操作记录(当前帐号最近三天内不存在敏感操作行为). 符合条件......

python使用for循环报错list.remove(x): x not in list

处理关键词有时候我们会用到python的for循环,代码小白的我碰到了一个问题,报错list.remove(x): x not in list。从列表中取出来的元素,删除竟然不在列表中?这到底是怎么回事呢? 首先来看一下我的代码: for k in ......

avatar
发表我的评论
取消评论

Hi,您需要填写昵称和邮箱!

  • 昵称 (必填)
  • 邮箱 (必填)
  • 网址