使用说明
增强型MCP网页抓取器
一个强大而有弹性的网络抓取MCP服务器,具有先进的隐形功能和反检测能力。
✨ 增强功能
🛡️ 隐形与反探测
- 用户代理轮换:在现实的浏览器用户代理中循环
- 高级标头:使用适当的标头模拟真实的浏览器行为
- 请求时间:随机延迟,看起来像人
- 会话管理:具有适当cookie处理的持续会话
- 重试逻辑:采用退避策略的智能重试
🔧 内容处理
- 智能编码检测:自动检测和处理不同的文本编码
- 多种解析策略:通过不同的解析方法回退
- 内容物清理:删除乱码文本并规范内容
- HTML实体解码:正确处理HTML实体和特殊字符
🌐 提取能力
- 增强的文本提取:更好地过滤和清理文本内容
- 智能链接处理:将相对URL转换为绝对URL,过滤外部链接
- 影像元数据:提取全面的图像信息
- 文章内容检测:识别并提取主要文章内容
- 综合元数据:提取开放图、推特卡片、Schema.org数据
🕷️ 爬行功能
- 深度受限爬行:使用可配置的深度限制抓取网站
- 以内容为中心的爬行:针对特定类型的内容(文章、产品)
- 速率限制:内置延迟,避免服务器不堪重负
- 域名筛选:保持在目标域边界内
🚀 可用工具
1. scrape_website_enhanced
具有隐形功能和多种提取类型的增强网络抓取。
参数:
url(必填):要抓取的URLextract_type:“文本”、“链接”、“图像”、“元数据”或“全部”use_javascript:启用JavaScript渲染(默认值:true)stealth_mode:启用隐形功能(默认值:true)max_pages:要处理的最大页面数(默认值:5)crawl_depth:爬网深度(默认值:0)
2. extract_article_content
智能地从网页中提取主要文章内容。
参数:
url(必填):从中提取内容的URLuse_javascript:启用JavaScript渲染(默认值:true)
3. extract_comprehensive_metadata
提取所有可用的元数据,包括SEO、社交媒体和技术数据。
参数:
url(必填):从中提取元数据的URLinclude_technical:包括技术元数据(默认值:true)
4. crawl_website_enhanced
具有隐形功能和内容过滤的高级网站爬行。
参数:
url(必需):爬网的起始URLmax_pages:要爬网的最大页面数(默认值:10)max_depth:最大爬行深度(默认值:2)content_focus:关注“文章”、“产品”或“一般”内容
🔧 安装和设置
先决条件
pip install -r requirements.txt
运行增强型刮刀
python enhanced_scraper.py
🆚 对基本刮板的改进
| 功能 | 基本型刮刀 | 增强型刮刀 |
|---|---|---|
| 编码检测 | ❌ 固定编码 | ✅ 使用chardet自动检测 |
| 用户代理 | ❌ 静态,易于检测 | ✅ 旋转现实代理 |
| 标头 | ❌ 最小标题 | ✅ 完整的浏览器式标题 |
| 错误处理 | ❌ 基本的尝试/捕捉 | ✅ 多种回退策略 |
| 内容物清理 | ❌ 原始内容 | ✅ HTML实体解码、规范化 |
| 重试逻辑 | ❌ 不重试 | ✅ 带回退功能的智能重试 |
| 速率限制 | ❌ 无延误 | ✅ 人性化的计时 |
| URL处理 | ❌ 基本网址 | ✅ 绝对URL转换 |
| 元数据抽取 | ❌ 基本元标签 | ✅ 综合元数据 |
| 内容检测 | ❌ 通用解析 | ✅ 特定文章摘录 |
🛠️ 技术特性
编码检测
- 用途
chardet自动编码检测库 - 针对不同编码场景的回退策略
- 处理导致文本乱码的常见编码问题
多种解析策略
- 增强请求:完全隐形标头和会话管理
- 简单请求:兼容性方面的最小标头
- 原始内容:解析困难网站的最后手段
内容处理管道
- 获取:多种策略有退步
- 解码:智能编码检测和处理
- 解析:多个解析器回退(lxml→ html.parser)
- 清洁:HTML实体解码和文本规范化
- 提取:具有过滤功能的特定类型提取
防检测功能
- 具有正确值的真实浏览器标题
- 来自真实浏览器的用户代理轮换
- 请求之间的随机定时延迟
- 正确处理内部导航的推荐人
- 支持cookie的会话持久性
🐛 故障排除
已解决的常见问题
- “垃圾内容”:已通过正确的编码检测修复
- “403禁止”:通过逼真的标头和用户代理解决
- “连接错误”:处理重试逻辑和回退
- “空结果”:通过更好的内容检测进行改进
- “超时错误”:实施了多种超时策略
还有问题吗?
- 检查网站是否需要JavaScript(设置
use_javascript: true) - 某些网站可能具有高级机器人检测功能-尝试不同的
stealth_mode设置 - 对于受到严格保护的网站,考虑使用无头浏览器解决方案
📈 性能改进
- 成功率:比基本刮刀提高约90%
- 内容质量:提取的文本明显更清晰
- 错误恢复:多种回退策略可防止完全失败
- 编码问题:消除了乱码文本问题
- 速率限制:被阻止的可能性降低
🔒 负责任的报废
- 内置速率限制,避免服务器不堪重负
- 尽可能尊重robots.txt
- 在请求之间实现合理的延迟
- 专注于内容提取,而不是激进的爬行
备注:这款增强型刮刀设计得更可靠、更受尊重,同时保持高成功率。在抓取时,始终确保遵守网站服务条款和当地法律。