常见反爬策略的解锁方法

用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 ChromeOptions

option = 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 Options

chrome_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 webdriver
 
firefox_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
    点赞
  • 10
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
爬虫(Web Crawler)是一种自动化程序,用于从互联网上收集信息。其主要功能是访问网页、提取数据并存储,以便后续分析或展示。爬虫通常由搜索引擎、数据挖掘工具、监测系统等应用于网络数据抓取的场景。 爬虫的工作流程包括以下几个关键步骤: URL收集: 爬虫从一个或多个初始URL开始,递归或迭代地发现新的URL,构建一个URL队列。这些URL可以通过链接分析、站点地图、搜索引擎等方式获取。 请求网页: 爬虫使用HTTP或其他协议向目标URL发起请求,获取网页的HTML内容。这通常通过HTTP请求库实现,如Python中的Requests库。 解析内容: 爬虫对获取的HTML进行解析,提取有用的信息。常用的解析工具有正则表达式、XPath、Beautiful Soup等。这些工具帮助爬虫定位和提取目标数据,如文本、图片、链接等。 数据存储: 爬虫将提取的数据存储到数据库、文件或其他存储介质中,以备后续分析或展示。常用的存储形式包括关系型数据库、NoSQL数据库、JSON文件等。 遵守规则: 为避免对网站造成过大负担或触发反爬虫机制,爬虫需要遵守网站的robots.txt协议,限制访问频率和深度,并模拟人类访问行为,如设置User-Agent。 反爬虫应对: 由于爬虫的存在,一些网站采取了反爬虫措施,如验证码、IP封锁等。爬虫工程师需要设计相应的策略来应对这些挑战。 爬虫在各个领域都有广泛的应用,包括搜索引擎索引、数据挖掘、价格监测、新闻聚合等。然而,使用爬虫需要遵守法律和伦理规范,尊重网站的使用政策,并确保对被访问网站的服务器负责。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值