Closed yeyuchen198 closed 1 year ago
我使用原版的selenium或者undetected_chromedriver,或者selenium_stealth 发现都不行通过CF5秒盾。
启动driver后,在第1个标签页,无论是手动验证,还是用driver执行脚本进行点击都不行, 但是!我有个发现,手动新建1个标签页,在这个标签页进行CF验证,无论是手动点击,还是执行js: document.querySelector("#cf-stage > div.ctp-checkbox-container > label > span").click() 都可以通过! 似乎当前标签页不在driver的控制之下,就能点击验证通过 CF有点神奇,好像可以判断我当前的标签页是否受driver控制。 新建标签页后,driver.switch_to.window(),跳转到该标签页(窗口),这时就会被判定为driver控制,手工点击验证重试无数次都不会通过的
我上面说的不准确,用selenium_stealth,对于某些节点,是可以使用一些小技巧来执行js来验证通过的,但是我发现多试几次之后,发现验证就不通过了,似乎是IP会被标记,然后进行拦截了,加大验证通过难度,CF盾好复杂。大佬们是不是直接逆向js来破解?
是的, 请求太频繁的话ip也会被cloudflare拦截. 可以使用此库来获取cookie、ua, 后续请求添加了cookie和ua和相同的代理即可绕过.
我使用原版的selenium或者undetected_chromedriver,或者selenium_stealth 发现都不行通过CF5秒盾。
启动driver后,在第1个标签页,无论是手动验证,还是用driver执行脚本进行点击都不行, 但是!我有个发现,手动新建1个标签页,在这个标签页进行CF验证,无论是手动点击,还是执行js: document.querySelector("#cf-stage > div.ctp-checkbox-container > label > span").click() 都可以通过! 似乎当前标签页不在driver的控制之下,就能点击验证通过 CF有点神奇,好像可以判断我当前的标签页是否受driver控制。 新建标签页后,driver.switch_to.window(),跳转到该标签页(窗口),这时就会被判定为driver控制,手工点击验证重试无数次都不会通过的