本目录收集了各种网站的爬虫挑战,每个挑战都描述了一个特定网站的反爬机制和技术细节。如果你希望贡献新的挑战,请按照以下指南操作。
docs/challenges/
├── README.md # 本文件:贡献指南
├── meta.yml # 示例和元数据格式说明
├── Challenge Name 1.yml # 挑战1的YAML文件
├── Challenge Name 2.yml # 挑战2的YAML文件
└── ... # 更多挑战文件
- 每个爬虫挑战需要保存为一个单独的YAML文件
- 文件名应该与挑战名称一致,例如:
Akamai Bot Manager.yml - 确保你的YAML文件符合以下格式规范
每个挑战YAML文件必须包含以下基本格式:
version: 1
challenges:
- id: <唯一ID>
# 其他字段...version: 数据结构版本,目前固定为1challenges: 包含单个挑战信息的数组(即使只有一个挑战)id: 挑战的唯一ID(整数)id-alias: ID的别名,用于URL和引用(字符串)platform: 平台类型,目前支持:Web、Android、iOSname: 挑战名称(中文)difficulty-level: 难度级别(1-5,整数)description-markdown或description-markdown-path: 挑战描述(选其一)base64-url: 目标网站URL的base64编码is-expired: 链接是否已失效(布尔值)create-time: 创建时间(格式:YYYY-MM-DD HH:mm:ss)update-time: 更新时间(格式:YYYY-MM-DD HH:mm:ss)
name_en: 挑战英文名称tags: 标签数组,如 ['js-reverse', 'wasm', 'jsvmp']description-markdown_en或description-markdown-path_en: 英文描述solutions: 解决方案数组,每个解决方案包含title、url、source和author字段
描述应包含以下内容:
- 简单介绍目标网站的功能和特点
- 详细描述其反爬机制和技术特点
- 可能的难点和解决思路
- 尽量客观描述,避免主观评价
- 可以使用Markdown语法增强可读性
version: 1
challenges:
- id: 999
id-alias: example-akamai
tags:
- browser-fingerprint
- behavior-analysis
platform: Web
name: Akamai Bot Manager
name_en: Akamai Bot Manager
difficulty-level: 5
description-markdown: |
Akamai Bot Manager是一种高级反爬虫解决方案,使用多层防护机制识别和阻止自动化流量。
特点:
- 设备指纹识别:收集浏览器、系统和硬件特征
- 行为分析:监控鼠标移动、点击模式和导航行为
- 机器学习:基于历史数据识别异常行为
破解难点:
- 需要准确模拟真实用户的浏览器环境
- 必须生成逼真的人类行为模式
- 要应对动态变化的检测算法
base64-url: aHR0cHM6Ly93d3cuYWthbWFpLmNvbS8=
is-expired: false
create-time: 2025-03-01 00:00:01
update-time: 2025-03-01 00:00:01- Fork本仓库
- 创建新分支:
git checkout -b add-new-challenge - 添加你的挑战YAML文件到
docs/challenges/目录 - 提交修改:
git commit -m "Add new challenge: XXX" - 推送到你的Fork:
git push origin add-new-challenge - 创建Pull Request
- 确保提供的URL是合法的,且不涉及违法内容
- 描述应客观准确,不包含主观评价或不恰当内容
- 日期格式必须符合:
YYYY-MM-DD HH:mm:ss - 在提交前请验证YAML格式是否正确
感谢你对爬虫挑战合集的贡献!