用selenium模拟登录不能通过验证

js检测window.navigator.webdriver值

比如淘宝登录,当用selenium驱动浏览器,发现无法通过滑块验证,如下图

当然可以修改这个值就可以绕过去。

简单粗暴的直接赋值是不行的,如

window.navigator.webdriver = undefined

正确的写法是这样的:

Object.defineProperties(navigator, {webdriver:{get:()=>undefined}});

但有时候遇到一些网站用selenium驱动Chrome根本就打不开,即使修改window.navigator.webdriver的值也不行,如信用中国

这个时候可以试试添加excludeSwitches这个参数

from selenium.webdriver import Chrome
from selenium.webdriver import ChromeOptionsoption = ChromeOptions()
option.add_experimental_option('excludeSwitches', ['enable-automation'])
driver = Chrome(options=option)driver.get("https://www.creditchina.gov.cn/xinyongfuwu")

可以访问了,如图所示

接管已经启动的浏览器

上面的方法并不能彻底解决信用中国的反爬问题,如果把这个搜索过程做成自动化,就会发现发现,ajax不能正确请求,如图

遇到这种情况,可以先启动一个正常的浏览器,然后用程序去接管

在命令行输入

chrome.exe --remote-debugging-port=9222 --user-data-dir="C:\selenum\AutomationProfile"
from selenium import webdriver
from selenium.webdriver.chrome.options import Optionschrome_options = Options()
chrome_options.add_experimental_option("debuggerAddress", "127.0.0.1:9222")
driver = webdriver.Chrome(chrome_options=chrome_options)

这样,浏览器就被接管过来了。这种方法可以绕过大部分针对selenium驱动浏览器的方法,然而,对信用中国并没有什么卵用

简单粗暴的方法是换个浏览器试试,比如,Firefox,信用中国就可以被绕过去了

from selenium.webdriver.firefox.options import Options
from selenium import webdriverfirefox_options = Options()
firefox_options.headless = True
driver = webdriver.Firefox(executable_path=FIREFOX_EXECUTABLE_PATH, options=firefox_options)

ip限制

短时间大量的访问ip会被加入黑名单,但这种方法容易误伤,一般过段时间就会被移出黑名单。

遇到这用情况,有钱的话可以买代理,没钱可以用免费的代理,缺点是很不稳定,当然也可以降低爬虫速度。

具体加代理的方法可以参考我的另一篇blog《python配置有权限代理解决方案》

参数签名

有时候抓api会发现api中有个签名字段,即对请求参数做一个签名,服务端收到请求后会验证签名是否有效,如网易云音乐,海拍客等网站,有的网站甚至会给返回的数据也加密,需要前端的js来解密,如中国空气质量在线监测分析平台|城市分析。对于中情况,就耐心的找出那段签名或加密的js代码,给自己的请求签名。

可以参考我的另一篇blog《破解某电商js签名api》

有时候也会浏览器端会生成一个字符串并写入cookie中,有使用次数限制,比如同花顺的K线数据接口,遇上这种情况可以简单粗暴的用selenium抓取cookie存入redis做为一个cookie池

验证码

找个打码平台,直接打码,比自己重新开发性价比高,如果遇到复杂的验证码,基本思路,划归,即把复杂的验证码处理成打码平台可以识别的样子,比如国家税务总局全国增值税发票查验平台,这个网站需要根据提示识别指定颜色的验证码,具体可以参考我的另一篇blog《选择某种颜色字母的验证码破解方法》

输入框监控

有些网站会用js监控输入按键事件,根据按键行为特征来判断人机,如亚马逊的vendor登录,破解思路是模拟敲键盘的停顿,即在每次按键后随机停顿个几百毫秒

refer监控

有的网站会根据refer的来判断当前的请求是否合法,即当前访问的页面必须由一些合理的页面跳过来,如MM131美女图片,爬这个网站的图如果访问某页的refer是从离它比较远的页面,则会返回403,比如,爬一个妹纸的第18张图片,但refer是第一张图片的地址就被禁止访问,处理办法是动态的修改refer引用。

常见反爬策略的解锁方法相关推荐

  1. 5种常见反爬策略及解决方案

    随着互联网的发展,越来越多的公司需要爬取各种数据来分析出自己公司业务的发展方向.而目前许多目标网站也有各种各样的措施来反爬虫,越是数据价值高的网站反爬做得也就越复杂.给大家列举了几个常见的反爬措施以及 ...

  2. 爬虫中常见的反爬手段和解决方法

    每日分享: 欲成大树,莫与草争:将军有剑,不斩草蝇:遇烂入及时止损,遇烂事及时抽身.格局小的人喜欢诋毁和嫉妒,因为我不好,我也不想让你好.格局大的人都懂得一个道理,强者互帮,弱者互撕.人性最大的愚蠢就 ...

  3. 爬虫反爬机制及反爬策略

    参考:https://www.cnblogs.com/LLBFWH/articles/10902533.html 爬虫是一种模拟浏览器对网站发起请求,获取数据的方法.简单的爬虫在抓取网站数据的时候,因 ...

  4. Python之网络爬虫(验证码、代理IP、防反爬策略、封装一个抓取页面的函数)

    文章目录 一.使用tesseract做OCR验证码识别 二.代理服务器设置 三.反爬与防反爬 四.封装一个抓取页面的函数 一.使用tesseract做OCR验证码识别 1.cookie, sessio ...

  5. python爬虫反爬策略_用Python语言做爬虫有哪些策略可以对抗反爬虫?

    该楼层疑似违规已被系统折叠 隐藏此楼查看此楼 作为爬虫工程师,时常要为不断更新的反爬虫策略而苦恼,究竟是魔高一尺还是道高一丈,从来就没有真正的分出过胜负,一个为了完成爬虫工作,一个为了保卫网站不被爬虫 ...

  6. python网络爬虫系列(八)——常见的反爬手段和解决方法

    常见的反爬手段和解决思路 学习目标 了解 服务器反爬的原因 了解 服务器常反什么样的爬虫 了解 反爬虫领域常见的一些概念 了解 反爬的三个方向 了解 常见基于身份识别进行反爬 了解 常见基于爬虫行为进 ...

  7. 【爬虫进阶】常见的反爬手段和解决方法(建议收藏)

    爬虫进阶:常见的反爬手段和解决思路 1 服务器反爬的原因 2 服务器常反什么样的爬虫 3 反爬虫领域常见的一些概念 4 反爬的三个方向 5 常见基于身份识别进行反爬 5.1 通过headers字段来反 ...

  8. 一些简单常见的网站反爬策略和解决办法

    目录 1.User-Agent(请求头header中的一个属性) 2.IP(IP地址是指互联网协议地址) 3.Cookie(储存在用户本地终端上的数据),对简单的一些cookie反爬进行说明 4.po ...

  9. python爬虫常见反爬措施_爬虫常见的反爬措施有哪些

    爬虫常见的反爬措施有三种: 1.header头部信息 解决方法: 加User-Agent值: 如果不加header头,部分网站服务器判断不到用户的访问来源,所以会返回一个404错误来告知你是一个爬虫, ...

最新文章

  1. SQL Server 跨数据库事务
  2. Python学习笔记__10.4章 进程VS线程
  3. 【Logstash】windows下logstash报错config files contains non-ascii characters but are not UTF-8 encoded
  4. 函数式编程可以配合装饰器使用
  5. python - 搜狗词库 (.scel 文件转 txt)
  6. 综合布线系统工程设计规范GB50311-2007
  7. 数字图像处理 - 灰度级分层 的python实现
  8. PS 将图片渐变透明
  9. 百度指数批量查询器,百度指数
  10. 新浪云 连接mysql数据库_新浪云php与java连接MySQL数据库
  11. 如何在Windows7系统下进行C盘的扩容
  12. 硬件系统工程师需要具备哪些技能
  13. 《五》HTML5 多媒体技术
  14. 解决VMware虚拟机中没有vmnet0的情况
  15. 最全HTTP状态码汇总1XX——5XX
  16. FPGA_硬件电路(自用)
  17. 螺旋进刀非法平面选择_钢筋工长考试题
  18. python有道-Python3基础 访问在线的有道词典
  19. 华钜同创:都2022年了,你还在用那些老掉牙的选品方法???
  20. Java计算1~n的和

热门文章

  1. 如何像麦肯锡咨询师一样做商业分析-1如何将老板的问题明确为可以实施的行动
  2. 360 so加壳动态脱壳方法
  3. 计算机主机和cpu的区别,主机与cpu的区别
  4. AP计算机自学笔记:方法参数
  5. Linux的上传和下载文件到Window_scp指令
  6. KDYD-JC自动高压漆膜连续性试验仪
  7. VisualTransformer(ViT)视觉任务骨干网络
  8. 给移动硬盘装win10,知道这些就足够了
  9. 广告公司不会被MCN干掉,但会被打残
  10. 微信小程序云开发上传word文档到云存储器