+
80
-

fetch如何突破cloudflare的5秒盾验证?

fetch如何突破cloudflare的5秒盾验证?


网友回复

+
0
-

可以下载一个FlareSolverr,FlareSolverr 启动代理服务器,它使用很少的资源等待处于空闲状态的用户请求。 当某些请求到达时,它会使用Selenium和未检测到的chromedriver来创建Web浏览器(Chrome)。它打开带有用户参数的 URL,并等待 Cloudflare 挑战 已解决(或超时)。HTML 代码和 COOKIE 被发送回给用户,这些 COOKIE 可用于 使用其他HTTP客户端绕过Cloudflare。

https://github.com/FlareSolverr/FlareSolverr

+
0
-

还可以使用undetected-chromedriver

https://github.com/ultrafunkamsterdam/undetected-chromedriver

安装:pip install undetected-chromedriver

import undetected_chromedriver as uc
driver = uc.Chrome(headless=True,use_subprocess=False)
driver.get('https://nowsecure.nl')
driver.save_screenshot('nowsecure.png')

+
0
-

补充一下FlareSolverr

首先本地docker运行

docker run -d \
  --name=flaresolverr \
  -p 8191:8191 \
  -e LOG_LEVEL=info \
  --restart unless-stopped \
  ghcr.io/flaresolverr/flaresolverr:latest

然后请求:

import requests
import json

url = "http://localhost:8191/v1"

payload = json.dumps({
  "cmd": "request.get",
  "url": "https://nowsecure.nl",
  "maxTimeout": 60000
})
headers = {
  'Content-Type': 'application/json'
}

response = requests.post(url, headers=headers, data=payload)
#print(response)
# 这个Docker镜像启动的接口,返回的数据是JOSN,网页源代码在其中的.solution.response中
print(response.json()['solution']['response'])

我知道答案,我要回答