vault backup: 2026-04-01 12:30:06

This commit is contained in:
2026-04-01 12:30:06 +08:00
parent 0179b49cf7
commit 05301e8d5f
3 changed files with 233 additions and 1 deletions

View File

@@ -17,4 +17,85 @@ https://www.fab.com/listings/bb7df0df-a2e7-430f-a382-7c3b121bf767
## 部署方式
1. 该网站项目使用gitea托管使用CI/CD进行生成与部署。
2. 部署到同IP Nodejs Docker容器中。
2. 部署到同IP Nodejs Docker容器中。
---
在使用 **Claude Code** 或类似的 AI 开发工具编写爬取脚本时,绕过 Cloudflare 的核心在于**“去自动化特征”**。Cloudflare 的防护(如 5 秒盾、Turnstile不仅检查你的 IP还会深入分析你的浏览器指纹、TLS 握手以及行为模式。
以下是针对 2026 年技术环境,在 Claude Code 中实现避开风控的实战策略:
### 1. 使用具备“隐身”能力的浏览器框架
传统的 Selenium 或普通的 Puppeteer 极易被识别。你应该指示 Claude Code 使用以下增强库:
- **Playwright + Stealth 插件**:目前最主流的选择。
- **SeleniumBase (UC Mode)**:这是目前绕过 Cloudflare 最强的工具之一,其 `undetected-chromedriver` 模式能有效隐藏自动化痕迹。
- **npx Claude Code 提示词示例**
> "请使用 Python 的 SeleniumBase 库,并开启 UC ModeUndetected Mode编写爬取脚本以绕过目标的 Cloudflare 检测。"
### 2. 模拟真实浏览器的指纹
Cloudflare 会检查你的 HTTP 请求头是否与底层的 TLS 握手特征匹配(例如,如果你自称是 Chrome 但 TLS 握手特征是 Python-requests会被秒封
- **TLS 指纹模拟**:使用 `curl_cffi` 库,它可以模拟真实浏览器(如 Chrome 120+)的 TLS 握手特征。
- **请求头伪造**:确保 `User-Agent``Accept-Language``Sec-Ch-Ua` 等字段与真实浏览器完全一致。
### 3. IP 质量与地理位置
即使代码再完美,数据中心的 IP如 AWS, Google Cloud也是 Cloudflare 的重点监控对象。
- **使用住宅代理Residential Proxies**:这些 IP 看起来像普通家庭用户。
- **轮换代理**:每次请求或每隔几次操作更换一次 IP。
- **IPv6 优先**2026 年很多防护系统对 IPv6 的限制相对宽松,且资源更丰富。
### 4. 绕过交互挑战 (CAPTCHA/Turnstile)
当 Cloudflare 弹出验证码时,纯代码通常无法处理。
- **验证码识别服务**:在代码中集成如 CapSolver 或 2Captcha 的 API。
- **Cloudflare Workers 代理**:有时通过部署在 Cloudflare 内部的 Workers 作为跳板(利用其内部信任机制)会有奇效,但这取决于目标的具体配置。
---
### 综合架构建议
|**维度**|**推荐技术栈**|**作用**|
|---|---|---|
|**底层驱动**|`SeleniumBase (UC Mode)``Playwright`|隐藏 WebDriver 特征|
|**网络请求**|`curl_cffi` (Python)|解决 TLS 指纹识别问题|
|**IP 资源**|动态住宅代理 (Residential Proxies)|绕过 IP 频率限制和黑名单|
|**行为模拟**|`B-Splines` 曲线模拟鼠标移动|模拟真人操作轨迹|
### Claude Code 实战操作小贴士:
在 Claude Code 终端中,你可以这样引导它:
1. **第一步:环境检查**。先让它写一个简单的脚本访问 `https://nowsecure.nl`(这是一个专门测试 Cloudflare 绕过程度的网站)并截图。
2. **第二步:迭代优化**。如果截图显示被拦截,要求它:“目前的脚本被拦截了,请尝试集成 `stealth` 插件并随机化延迟时间。”
3. **第三步:添加随机性**
Python
```
import time
import random
# 绝不要使用固定的 sleep(5)
time.sleep(random.uniform(2.5, 7.8))
```
**重要提醒:** 爬取数据请务必遵守目标网站的 `robots.txt` 协议及当地法律法规。过度高频的爬取不仅会被封禁,还可能面临法律风险。