惯性聚合 高效追踪和阅读你感兴趣的博客、新闻、科技资讯
阅读原文 在惯性聚合中打开

推荐订阅源

Engineering at Meta
Engineering at Meta
奇客Solidot–传递最新科技情报
奇客Solidot–传递最新科技情报
腾讯CDC
宝玉的分享
宝玉的分享
量子位
Recent Announcements
Recent Announcements
Martin Fowler
Martin Fowler
J
Java Code Geeks
V
Visual Studio Blog
阮一峰的网络日志
阮一峰的网络日志
Blog — PlanetScale
Blog — PlanetScale
大猫的无限游戏
大猫的无限游戏
博客园 - 叶小钗
S
SegmentFault 最新的问题
B
Blog
freeCodeCamp Programming Tutorials: Python, JavaScript, Git & More
博客园 - 【当耐特】
小众软件
小众软件
The Cloudflare Blog
Y
Y Combinator Blog
I
InfoQ
OSCHINA 社区最新新闻
OSCHINA 社区最新新闻
GbyAI
GbyAI
IT之家
IT之家

膨胀自留地

使用CloudFlare标记管理功能优雅的使用谷歌分析 四天轻松版北京旅游攻略 Adsense税务居住地证明申请教程:如何申请中国税收居民身份证明以及Google Adsense更新新加坡税务信息教程 常见的 VPS 优化措施 HTML实现table表格移动端自动转为卡片样式 个人网站接入 Google 登录 如何从 GitHub 永久删除泄露的 .env 文件 Cloudflare设置www的域名跳转到不带www的域名 顶级iOS神器!全面解开App Store限制,AssPP Pro保姆级教程 BroadcastChannel将你的 Telegram Channel 转为微博客 Medama开源轻量级网站统计(分析)系统 白嫖一个网站监控面板:uptime-kuma 部署TraffMonetizer利用闲置VPS挂机赚钱 Counterscale-使用CloudflareWorkers部署的免费网站数据统计工具,界面类似umami 封装一个最简单的Axios,避免过度封装! 如何使用Cloudflare Email Routing创建域名邮箱免费发送邮件 使用Cron定时更新Hosts解决Gihub无法访问问题 容器化MariaDB/Mysql实现定时备份 JetBrains全家桶许可证服务器怎么找,JetBrains激活教程 图片加速接口:缓存图片,加速访问,解决防盗链 MySQL模糊查询再也不用like+%了,全文索引介绍及使用简介 为什么这么多人推荐你办理流量卡?流量卡怎么赚钱?怎么避坑? 借助Cloudflare Worker实现Google Analytics反代加速,规避广告屏蔽插件的拦截 etcd入门之在Centos上安装部署 Grafana在linux下安装和基本使用入门 Prometheus介绍、安装和基本功能快速入门 无需加速器,油猴插件解锁xbox云游戏 阿里云盘自动每日签到,无需部署,无需服务器 自定义VSCode终端主题样式 一行 CSS 代码实现响应式布局 – 使用 Grid 实现的响应式布局
三行代码捅穿 CloudFlare 的五秒盾
2021-05-14 · via 膨胀自留地

#编程技术 2021-05-14 14:50:20 | 全文 1050 字,阅读约需 3 分钟 | 加载中... 次浏览

👋 相关阅读


经常写爬虫的同学,肯定知道 CloudFlare 的五秒盾。当你没有使用正常的浏览器访问网站的时候,它会返回如下这段文字:

Checking your browser before accessing xxx.

This process is automatic. Your browser will redirect to your requested content shortly.

Please allow up to 5 seconds…

即使你把 Headers 带完整,使用代理 IP,也会被它发现。我们来看一个例子。

Mountain View Whisman students sent home after children test positive for COVID-19

这篇文章,使用正常浏览器访问,效果如下图所示:

图片alt

直接查看原始的网页源代码,可以看到,新闻标题和正文就在源代码里面,说明新闻的标题和正文都是后端渲染的,不是异步加载。如下图所示:

图片alt

现在,我们使用 requests,带上完整的请求头来访问这个网站,效果如下图所示:

图片alt

网站识别到了爬虫行为,成功把爬虫请求挡住了。很多同学在这个时候就已经束手无策了。因为这是爬虫的第一次请求就被挡住了,所以网站不是检测的 IP 或者访问频率,所以即使用代理 IP 也无济于事。而现在即使带上了完整的请求头都能被发现,那还有什么办法绕过这个检测呢?

免费版5秒盾

实际上,要绕过这个 5 秒盾非常简单,只需要使用一个第三方库,叫做cloudscraper。我们可以使用 pip 来安装:

python3 -m pip install cloudscraper

安装完成以后,只需要使用 3 行代码就能绕过 CloudFlare 的 5 秒盾:

import cloudscraper
scraper = cloudscraper.create_scraper()
resp = scraper.get('目标网站').text

我们还是以上面的网站为例:

import cloudscraper
from lxml.html import fromstring

scraper = cloudscraper.create_scraper()
resp = scraper.get('https://mv-voice.com/news/2021/05/04/mountain-view-whisman-students-sent-home-after-children-test-positive-for-covid-19').text
selector = fromstring(resp)
title = selector.xpath('//h1/text()')[0]
print(title)

运行效果如下图所示:

图片alt

破盾成功。

CloudScraper 非常强大,它可以突破 CloudFlare 免费版各个版本的五秒盾。而且它的接口和 requests 保持一致。原来用 requests 怎么写代码,现在只需要把requests.xxx改成scraper.xxx就可以了。

付费版五秒盾

如果网站开启了付费版的五秒盾,比如 Codebase , 当我们使用 CloudScraper 去爬时,报错如下:

图片alt

那么现阶段,付费版的 CloudFlare 五秒盾,有没有什么办法绕过呢?

其实方法非常简单。只需要使用 Docker 运行一个容器就可以了。启动命令为:

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

这个容器启动以后,会开启 8191 端口。我们通过往这个端口发送 http 请求,让他转发请求给目标网站,就可以绕过五秒盾。

具体使用示例:

import requests
import json

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

payload = json.dumps({
  "cmd": "request.get",
  "url": "https://www.coinbase.com/ventures/content",
  "maxTimeout": 60000
})
headers = {
  'Content-Type': 'application/json'
}

response = requests.post(url, headers=headers, data=payload)

这个 Docker 镜像启动的接口,返回的数据是 JOSN,网页源代码在其中的 .solution.response 中

print(response.json()['solution']['response'])

访问效果如下图所示:

图片alt

我们再写几行代码来提取一下标题:

图片alt

我们启动的这个容器,为什么可以绕过CloudFlare的五秒盾呢,关键原因就在这个项目中:FlareSolverr 。大家可以阅读他的源代码,看看他是怎么绕过的。

via

一日一技:如何捅穿Cloud Flare的5秒盾 https://mp.weixin.qq.com/s/zwmatF3yTgSyS0gz8sinaA

VeNoMouS/cloudscraper: A Python module to bypass Cloudflare’s anti-bot page. https://github.com/venomous/cloudscraper

一日一技:【最新】再次突破CloudFlare五秒盾付费版 | 谢乾坤 | Kingname https://www.kingname.info/2023/02/25/crack-cf-2/


×