README
🚀 mcp-crew-risk
基于模型上下文协议(MCP)的爬虫风险评估器,提供简单的 API 接口,可对指定网页进行全面的爬虫合规风险评估。
🚀 快速开始
CLI
npx -y mcp-crew-risk
MCP 服务器配置
{
"mcpServers": {
"mcp-crew-risk": {
"command": "npx",
"args": [
"-y",
"mcp-crew-risk"
]
}
}
}
✨ 主要特性
MCP 爬虫合规风险评估框架主要特性:
1. 目标网站访问与基本状态检查 ✅ 已完成
- 支持设置超时并最多进行 5 次重定向,访问目标网站首页。
- 返回 HTTP 状态码,以判断网站的可访问性。
- 检测重定向情况,并对潜在风险发出警告。
2. 反爬虫机制检测 ✅ 已完成
- 检测服务器是否使用 Cloudflare 或类似的反爬虫保护。
- 检测是否存在 JavaScript 验证挑战(如 Cloudflare JS 挑战)。
- 解析页面
<meta name="robots">标签和 HTTP 响应头X-Robots-Tag。 - 自动请求并解析
robots.txt,提取允许和禁止的路径。
3. 敏感内容检测与法律风险警告 ✅ 已完成
- 检测页面上的版权声明和服务条款相关信息。
- 通过正则匹配识别可能的个人隐私信息(电子邮件、电话、身份证)。
- 提供法律合规警告,防止侵权和隐私泄露。
4. 公共 API 端点检测 ✅ 已完成
- 访问常见的 API 路径(如
/api/、/v1/、/rest/)。 - 判断 API 是否开放以及是否需要身份验证;对潜在的权限和速率限制风险发出警告。
5. 综合风险评估与分类 ✅ 已完成
- 根据所有检测结果提供三级爬取许可评级:
allowed:无明显限制或风险。partial:存在一些技术或合规限制。blocked:存在明显的反爬虫措施或高风险。
6. 规划中的特性 🚧 待完成
📦 安装指南
git clone https://github.com/Joooook/mcp-crew-risk.git
npm i
📚 详细文档
爬虫合规风险评估框架描述
本框架旨在为爬虫开发者和运营者提供一套全面的自动化合规检测工具,以评估目标网站对爬虫的友好程度和潜在风险。它涵盖法律、社会伦理和技术三个主要维度。通过多级风险警告和具体建议,帮助合理规划爬虫策略,避免法律纠纷和负面社会影响,同时提高技术稳定性和效率。
框架结构
1. 法律风险
- 检测内容
- 是否有明确的服务条款限制爬虫活动。
- 网站是否声明版权信息以及内容是否受版权保护。
- 页面是否包含敏感个人数据(如电子邮件、电话号码、身份证号码)。
- 风险意义 违反条款可能导致违约、侵权或刑事责任;抓取敏感数据可能违反 GDPR、CCPA 等隐私法规。
- 检测示例
- 检测
<meta>标签和页面内容中的关键词。 - 使用正则表达式匹配电子邮件、电话号码。
- 检测
2. 社会/伦理风险
- 检测内容
- robots.txt 是否禁止爬虫访问特定路径。
- 网站部署的反爬虫技术(如 Cloudflare JS 挑战)。
- 收集用户隐私或敏感信息的风险。
- 风险意义 过度爬取可能损害用户体验和信任;收集私人数据存在伦理风险和社会责任问题。
- 检测示例
- 访问并解析 robots.txt。
- 检测反爬虫机制和 JS 挑战。
- 对敏感信息提取发出警告。
3. 技术风险
- 检测内容
- 访问过程中是否遇到重定向、验证码、JS 渲染障碍。
- 是否能够成功访问 robots.txt 以获取爬虫规则。
- 目标 API 路径的暴露情况,可能的权限或速率限制。
- 风险意义 技术风险可能导致爬虫失败、IP 封禁或数据不完整,影响业务稳定性。
- 检测示例
- HTTP 状态码和响应头分析。
- 反爬虫技术检测。
- API 路径扫描。
评级系统
- allowed:无明显限制或风险,通常可以安全爬取。
- partial:存在一些限制(如 robots.txt 禁止某些路径、有反爬虫措施),需要谨慎操作。
- blocked:存在严重限制或高风险(如大量 JS 反爬虫挑战、敏感数据保护),不建议爬取。
建议
| 风险维度 | 总结建议 | | ---- | ---- | | 法律风险 | 仔细阅读并遵守目标网站的服务条款;避免抓取敏感或个人数据;必要时咨询法律顾问。 | | 社会/伦理风险 | 控制爬取频率;避免影响服务器性能和用户体验;公开数据来源和用途。 | | 技术风险 | 使用合适的爬虫框架和策略;支持动态渲染和绕过反爬虫机制;处理异常并实时监控访问健康状况。 |
实施流程
- 爬取前评估:对目标网站进行合规评估,确认风险级别和限制。
- 合规策略制定:根据评估结果调整爬虫访问频率和内容范围,避免违规。
- 爬虫执行与监控:在爬取过程中持续监控技术异常和风险变化;定期重新评估。
- 数据处理与保护:确保爬取的数据符合隐私保护要求,并进行必要的匿名化处理。
技术实现概述
- 使用 Axios + node-fetch 进行 HTTP 请求,支持超时和重定向控制。
- 解析
robots.txt和页面meta标签,自动识别爬虫规则。 - 使用正则表达式检测隐私敏感信息(电子邮件、电话、身份证号码等)。
- 检测反爬虫技术(如 Cloudflare JS 挑战)和暴露的 API 端点。
- 通过风险评估函数提供法律、社会和技术风险警告及综合建议。
未来扩展
- 集成 Puppeteer/Playwright 进行 JavaScript 渲染页面检测。
- 自动解析并通知服务条款文本更新。
- 为 GDPR、CCPA 等地区法律添加专用检测模块。
- 结合机器学习模型提高隐私敏感数据识别准确性。
- 提供 Web UI 显示合规报告和风险建议。
技术检查
| 检查项 | 描述 | 建议 |
| ---- | ---- | ---- |
| robots.txt 存在性 | 访问 https://example.com/robots.txt | 如果存在,解析并严格遵守规则 |
| robots.txt 中允许的爬取路径 | 检查指定 User-Agent 的规则(如 Disallow、Allow) | 设置合适的 User-Agent 进行匹配 |
| Meta robots 标签 | 页面上是否存在 <meta name="robots" content="noindex, nofollow"> | 如果存在,避免爬取/索引页面内容 |
| X-Robots-Tag 响应头 | HTTP 响应头是否包含 X-Robots-Tag(如 noindex) | 遵循相应的指令 |
| 动态渲染内容 | 页面是否依赖 JS 加载(React/Vue 等) | 可能需要无头浏览器(如 Puppeteer) |
| IP 速率限制 / WAF | 是否存在访问频率限制、IP 封禁、验证码 | 实施速率限制、重试、代理池 |
| 反爬虫机制检测 | 检查是否存在令牌验证、Referer 检查、JS 混淆 | 使用网络分析工具进行调查 |
| API 支持 | 页面数据是否也通过公共 API 提供 | 如果可用,优先使用 API 以提高效率 |
法律和伦理检查
| 检查项 | 描述 | 建议 | | ---- | ---- | ---- | | 服务条款存在性 | 检查服务条款是否禁止自动爬取 | 如果明确禁止,请勿爬取 | | 网站版权声明 | 页脚是否声明内容版权 | 避免为商业目的爬取受版权保护的数据 | | 公共数据/开放数据政策 | 某些网站提供开放数据或许可证 | 遵守许可证或开源协议 | | 过往爬取诉讼情况 | 某些网站(如 LinkedIn、Facebook)有严格的反爬取立场 | 如果存在过往案例,风险较高 — 避免爬取 |
数据保护和隐私
| 检查项 | 描述 | 建议 | | ---- | ---- | ---- | | 用户生成内容存在性 | 评论、头像、电话、电子邮件、位置等 | 爬取此类数据可能违反隐私法 | | 隐私政策存在性 | 检查数据使用边界和限制 | 遵循政策中规定的数据处理条款 | | 是否涉及欧盟或加州用户 | 是否受 GDPR 或 CCPA 法规约束 | 未经同意,请勿存储或分析个人数据 | | 爬取的个人可识别信息 | 电话号码、身份证、电子邮件、IP 地址 | 除非必要,否则进行过滤或匿名化处理 | | 敏感领域数据 | 医疗、金融、未成年人等 | 需要严格合规,建议避免或匿名化处理 |
实际操作建议(合规友好策略)
| 检查项 | 描述 | 建议 |
| ---- | ---- | ---- |
| 设置合理的 User-Agent | 明确表明工具来源,如 MyCrawlerBot/1.0 (+email@example.com) | 提高可信度,便于网站识别 |
| 设置访问频率限制 | 避免过于频繁的请求(如 1 - 2 次请求/秒) | 减轻服务器负载,避免被封禁 |
| 添加 Referer 和 Accept 头 | 模拟正常浏览器行为 | 防止反爬虫拦截 |
| 支持失败重试机制 | 处理 503、429、连接中断错误 | 提高健壮性 |
| 日志记录和爬取时间控制 | 保存爬取日志,并在非高峰时段安排爬取 | 配合网站维护窗口 |
| 在输出中注明数据源 | 用于展示或研究时,引用数据源 | 避免版权纠纷 |
| 数据存储匿名化 | 特别是个人数据 | 避免违反隐私法 |
一句话总结
没有 robots.txt 并不意味着可以自由爬取;技术上可爬取并不等同于法律上允许;尊重数据、网站和用户,这是合规爬取的基础。
🔧 技术细节
本项目使用 Axios + node-fetch 进行 HTTP 请求,支持超时和重定向控制。通过解析 robots.txt 和页面 meta 标签,自动识别爬虫规则。使用正则表达式检测隐私敏感信息,同时检测反爬虫技术和暴露的 API 端点。最后通过风险评估函数提供法律、社会和技术风险警告及综合建议。
📄 许可证
文档未提及相关信息。
🧠 MCP 访问链接
- 🌐 ModelScope MCP 地址:用于在 ModelScope 平台上测试和集成
mcp-crew-risk服务。 - 🛠️ Smithery.ai MCP 地址:用于通过 Smithery 平台直观地配置和调用
mcp-crew-risk服务。
💭 说明
本项目仅用于学习目的。欢迎贡献代码和提出功能需求。
联系我们
商务合作邮箱:deeppathai@outlook.com
扫码联系在线客服