用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. 阿里巴巴开源的 Blink 实时计算框架真香
  2. 365Rss.cn Beta 1.0 (内测版本)更新 2007-1-18:速度、人性化、简洁化
  3. 7.26T1四分图匹配
  4. mysql killed 不掉,解决:kernel: Out of memory: Killed process 15967, UID 27, (mysqld).
  5. 关于STM32使用RTC时复位后程序死在 RTC
  6. MySQL数据类型-decimal详解
  7. ES6语法规则之解构
  8. BZOJ-1901 Zju2112 Dynamic Rankings 函数式线段树 套 树状数组+离线处理
  9. java 0x5_java - 从Java中的COM端口读取,错误0x5在.. \ rxtx \ src \ termios.c(892) - 堆栈内存溢出...
  10. python编程(编写opengl程序)
  11. 在SqlServer2000的视图中小心使用*符号
  12. python下载步骤-python3.8下载及安装步骤详解
  13. 显示器信号接口的发展历程
  14. php 差错,PHP 错误处理
  15. 小米开发版安装magisk_小米9SE不刷recovery直接安装Magisk面具的详细教程
  16. 百度云下载不限速方法+软件
  17. 【C#】KPM算法解决字符串匹配问题
  18. 拼多多退款怎么设置?万顿思教育
  19. 2023北京电子科技大学计算机考研信息汇总
  20. 炫“库”行动-人大金仓有奖征文-数据库的备份及恢复

热门文章

  1. 《互联网+ 电商平台设计与运营》一一1.3 “互联网+”幕后的商家生态
  2. Arcgis自定义符号库
  3. 利用FFMPEG实现音频视频升降调
  4. 怎么看vray渲染进度_【3dmax疑难问题】渲染有进度条但渲染窗口不见了
  5. IDEA导入外部Module步骤
  6. Android 系统如何预装第三方应用以及常见问题汇集
  7. Regmap API 实验
  8. 工具分享 | linemap-快速绘制山峦地图的R可视化包介绍
  9. JAVA判断是不是回文_Java 基础编程练习(判断是否为回文)
  10. 物理层(网络协议相关