滑块验证之反反爬
问题
在正常登录时,我们手动划过滑块是可以的,但采用selenium时遇到滑块怎么办呢?
方案
常规的解决方案2种:
1. 下载该图片,采用机器学习识别出缺省的图片特征,记录缺省位置的坐标。再通过selenium的滑动方法滑到指定坐标。
2. 通过手动划过去,遇到滑块时我们在脚本里不管它,直接走划过去之后的流程。
鉴于时间与学习成本,通常我们采用的是第二种方式,即人工划过去。
问题升级
然而理想是好的,如果网站对selenium做了反爬处理,那么手动也划不过去。
也就是说,我们正常登录网站没问题,但是用selenium登录就过不去啦。
该怎么办呢?
方案升级
1. 通过中间人代理-mitmproxy,可惜该方法也是有一定几率通不过的。
from mitmproxy import ctx def response(flow): """修改应答数据 """ if '/libs/greenseer.' in flow.request.url: # 屏蔽selenium检测 for webdriver_key in [ 'webdriver', '__driver_evaluate', '__webdriver_evaluate', '__selenium_evaluate', '__fxdriver_evaluate', '__driver_unwrapped', '__webdriver_unwrapped', '__selenium_unwrapped', '__fxdriver_unwrapped', '_Selenium_IDE_Recorder', '_selenium', 'calledSelenium', '_WEBDRIVER_ELEM_CACHE', 'ChromeDriverw', 'driver-evaluate', 'webdriver-evaluate', 'selenium-evaluate', 'webdriverCommand', 'webdriver-evaluate-response', '__webdriverFunc', '__webdriver_script_fn', '__$webdriverAsyncExecutor', '__lastWatirAlert', '__lastWatirConfirm', '__lastWatirPrompt', '$chrome_asyncScriptInfo', '$cdc_asdjflasutopfhvcZLmcfl_' ]: ctx.log.info('Remove "{}" from {}.'.format(webdriver_key, flow.request.url)) flow.response.text = flow.response.text.replace('"{}"'.format(webdriver_key), '"NO-SUCH-ATTR"') flow.response.text = flow.response.text.replace('t.webdriver', 'false') flow.response.text = flow.response.text.replace('ChromeDriver', '')
2. 构造cookie
假如你之前没有过cookie登录该网站的先例,那么下面的忽略。如果有,可以继续往下看。
众所周知,selenium支持添加cookie的方法,我们需要构造出cookie文件。
如果之前用cookie登录过而且cookie没过期,那么可以直接用。如果cookie过期了,观察之前的cookie文件特征,需要修改过期的关键字expiry对应的值,以及与session对应的关键字的值,具体还需要哪些值得根据cookie文件的特征来,这就需要我们敏锐的判断力了。
总之,每一次对抗升级,爬虫工程师免不了死大量脑细胞。
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 如何编写易于单元测试的代码
· 10年+ .NET Coder 心语,封装的思维:从隐藏、稳定开始理解其本质意义
· .NET Core 中如何实现缓存的预热?
· 从 HTTP 原因短语缺失研究 HTTP/2 和 HTTP/3 的设计差异
· AI与.NET技术实操系列:向量存储与相似性搜索在 .NET 中的实现
· 10年+ .NET Coder 心语 ── 封装的思维:从隐藏、稳定开始理解其本质意义
· 地球OL攻略 —— 某应届生求职总结
· 提示词工程——AI应用必不可少的技术
· Open-Sora 2.0 重磅开源!
· 周边上新:园子的第一款马克杯温暖上架