1

    Web Scraper Engine

    by Joker

    Scraper architecture routing, anti-scraping strategies, data extraction, storage, compliance.

    Updated Jun 2026
    0 installs

    Free

    Included in download

    • Downloadable skill package
    • 1 permission declared
    • Instant install

    Sample input

    Help with web

    Sample output

    Web Scraper Engine

    Structured analysis with routing and next steps.

    Screenshots

    About This Skill

    --- name: web-scraper-engine description: 网页爬虫开发专家决策引擎。提供爬虫架构路由(Scrapy/Playwright/自定义)、反爬策略决策(Cookie/UA轮换/代理池/验证码)、数据提取方案(CSS/XPath/JSON API)、存储方案(CSV/JSON/SQLite)、合规检查清单、质量门控、常见错误模式。当用户需要写爬虫、网页抓取、数据采集、Scrapy、Playwright、反爬、web scraping时使用此技能。 --- # 网页爬虫开发专家 网页爬虫开发决策引擎,根据任务复杂度和数据需求推荐最优技术方案,输出可直接运行的代码模板。 ## 架构路由决策树 ## 技术选型矩阵 | 场景 | 推荐方案 | 核心库 | 适用规模 | |------|----------|--------|----------| | 静态HTML + 简单解析 | requests + BeautifulSoup | bs4, lxml | < 1000页 | | 静态HTML + 高并发 | Scrapy | scrapy, parsel | 1000-100000页 | | 动态渲染页面 | Playwright | playwright | 任意规模 | | API 接口调用 | requests 直接调 | httpx | 任意规模 | | 分布式爬虫 | Scrapy + Splash | scrapy, scrapy-redis | 100000+页 | ## 反爬策略决策树 ## 数据提取方案 ### CSS 选择器 vs XPath vs JSON | 方法 | 适用场景 | 示例 | |------|----------|------| | **CSS 选择器** | 结构化HTML,class/id明确 | `soup.select('.title')` | | **XPath** | 复杂嵌套,需要位置索引 | `//div[@class='item'][1]/text()` | | **JSON 路径** | API接口返回JSON | `data['results'][0]['name']` | | **正则表达式** | 非结构化文本 | `re.findall(r'\d{11}', text)` | ### 选择优先级 ## 存储决策 | 数据量 | 查询需求 | 推荐方案 | 库/格式 | |--------|----------|----------|---------| | < 1000条 | 无 | CSV | pandas, csv | | < 10000条 | 简单查询 | JSON Lines | jsonlines | | 任意量 | 关系查询 | SQLite | sqlite3 | | 任意量 | 高并发查询 | PostgreSQL/MySQL | sqlalchemy | | 大规模 | 分析需求 | 数据仓库 | pandas + parquet | ## 合规检查清单 ### P0 必须项(硬性红线) - [ ] 检查 `robots.txt` 并遵守 - [ ] 设置合理的请求间隔(≥1秒) - [ ] 不采集个人隐私数据(身份证、手机号、邮箱等) - [ ] 不采集受版权保护的内容(仅用于研究/分析) - [ ] 设置 User-Agent 标识身份 ### P1 推荐项 - [ ] 记录爬取日志,便于问题追溯 - [ ] 实现增量爬取,避免重复数据 - [ ] 异常处理完善,不中断其他任务 - [ ] 数据脱敏处理 ### P2 最佳实践 - [ ] 遵循网站的 rate limit - [ ] 申请官方 API 优先 - [ ] 设置爬取时间窗口(避开高峰期) - [ ] 数据使用前获取授权 ## Python 3.14 新特性支持 本技能支持 Python 3.14 最新特性: ### PEP 779: 自由线程模式正式版 (No-GIL) ### 其他 3.14 特性 - **PEP 756**: 改进了 `typing.TYPE_CHECKING` 性能 - **PEP 749**: `violation` 异常类型用于类型检查违规 - 优化了 `asyncio` 事件循环启动时间 ## 质量门控 ### P0 阻塞级(代码必须通过) ### P1 重要级(建议通过) ### P2 优化级(锦上添花) ## 10个常见错误及修复 | # | 错误类型 | 典型症状 | 修复方案 | |---|----------|----------|----------| | 1 | **编码问题** | `UnicodeDecodeError: 'utf-8' codec can't decode byte` | 指定 `encoding='utf-8'` 或检测编码 | | 2 | **动态加载遗漏** | 页面有内容但提取为空 | 改用 Playwright 渲染 或 分析 XHR 请求 | | 3 | **反爬封IP** | 返回 403/418,IP被封 | 降速 + 代理池 + 轮换 UA | | 4 | **内存溢出** | 大规模爬取时内存持续增长 | 使用生成器/迭代器,定期 gc.collect() | | 5 | **请求超时** | `TimeoutError: ...` | 设置合理 timeout + 重试机制 | | 6 | **CSS/XPath 失效** | 选择器匹配不到元素 | 检查页面是否动态渲染,使用开发者工具定位 | | 7 | **Cookie 过期** | 登录后才能访问的内容突然 401 | 实现 Session 自动续期 | | 8 | **并发过大被封** | 高并发时大量请求失败 | 降低并发数,增加请求间隔 | | 9 | **数据重复** | 同一数据被重复爬取 | 使用 Redis/数据库去重,维护已爬 URL 集合 | | 10 | **僵尸进程** | 程序结束但连接未关闭 | 使用 context manager,确保资源释放 | ## 代码模板库 ### 模板1: requests + BeautifulSoup(50行内) ### 模板2: Playwright 动态页面(60行内) ### 模板3: Scrapy 项目结构 ## 输出格式规范 当用户请求爬虫开发时,输出结构如下: python [完整可运行的代码] ## 八、Python爬虫实战代码库 ### 8.1 通用新闻采集脚本 ### 8.2 反爬策略工具箱 ### 8.3 动态页面处理(Playwright) ## 九、2026爬虫洞察 - **Cloudflare Turnstile**:2026年主流反爬升级,传统绕过方法失效,需Playwright+stealth插件 - **API优先策略**:优先寻找页面API端点,直接获取JSON数据,效率提升10倍+ - **AI辅助解析**:GPT-4/Claude可直接从HTML提取结构化数据,无需手写CSS选择器 - **Crawl4AI**:开源AI爬虫框架,自动识别页面结构并提取内容 - **合规趋严**: Robots.txt遵守成为强制要求,数据出境需合规审查 --- ## 十、反反爬虫策略 ### 10.1 代理池管理 ### 10.2 请求头模拟 ### 10.3 浏览器指纹管理 --- ## 十一、数据存储方案 ### 11.1 多格式存储 ### 11.2 数据库连接池 --- ## 十二、分布式爬虫 ### 12.1 Redis任务队列 ### 12.2 增量爬取 --- ## 十三、爬虫项目管理 ### 13.1 项目结构模板 ### 13.2 配置文件模板 ### 13.3 日志配置 --- ## 十四、质量门控体系 ### P0 级:阻塞性问题 | 检查项 | 验收标准 | 检测方法 | |--------|----------|----------| | robots.txt遵守 | 遵守robots.txt | 日志检查 | | 请求频率限制 | ≤10请求/秒 | 流量监控 | | IP封禁检测 | 无封禁响应 | 状态码监控 | | 数据完整性 | 必需字段不缺失 | 字段检查 | ### P1 级:功能性问题 | 检查项 | 验收标准 | 检测方法 | |--------|----------|----------| | 数据准确性 | 关键字段准确≥95% | 抽样验证 | | 页面覆盖度 | 目标页面100%覆盖 | 覆盖率统计 | | 错误处理 | 异常情况正确处理 | 错误日志 | | 增量爬取 | 仅爬取新增内容 | 状态对比 | ### P2 级:体验优化项 | 检查项 | 验收标准 | 检测方法 | |--------|----------|----------| | 爬取速度 | 达到预期吞吐量 | 时间测量 | | 资源占用 | CPU<50%, 内存<2GB | 资源监控 | | 日志完整性 | 关键操作有日志 | 日志审查 | | 代码质量 | 通过lint检查 | CI检查 | --- ## 十五、常见错误模式 | # | 错误类型 | 错误描述 | 解决方案 | |---|----------|----------|----------| | 1 | IP封禁 | 返回403/407状态码 | 使用代理池/降低频率 | | 2 | 请求超时 | 连接超时/读取超时 | 增加超时/重试 | | 3 | 验证码拦截 | 返回验证码页面 | 人工打码/机器学习 | | 4 | JS渲染缺失 | 页面内容为空 | Selenium/Playwright | | 5 | 动态加载失败 | 滚动加载无内容 | 模拟滚动/API调用 | | 6 | CSS选择器失效 | 找不到元素 | 更新选择器/XPath | | 7 | 编码错误 | 内容乱码 | 指定正确编码 | | 8 | Cookie过期 | 登录失效 | 刷新Cookie | | 9 | API限流 | 返回429状态码 | 降低频率/等待 | | 10 | SSL证书错误 | 认证失败 | 忽略证书/更新证书 | | 11 | 内存泄漏 | 内存持续增长 | 定期清理/批量处理 | | 12 | 数据重复 | 采集到重复数据 | URL去重/数据去重 | | 13 | 解析错误 | 结构化提取失败 | 异常处理/默认值 | | 14 | 重定向失败 | 跟随重定向失败 | 处理重定向 | | 15 | 文件下载失败 | 下载中断 | 断点续传 | --- ## 十六、Selenium高级技巧 ### 16.1 无头浏览器配置 ### 16.2 页面等待策略 ### 16.3 JavaScript执行 --- ## 十七、数据解析进阶 ### 17.1 BeautifulSoup高级用法 ### 17.2 JSON数据解析 ### 17.3 XPath高级用法 --- ## 十八、并发爬虫 ### 18.1 多线程爬虫 ### 18.2 异步爬虫 (asyncio) ### 18.3 分布式爬虫架构 --- ## 十九、实战案例 ### 19.1 新闻网站爬虫 ### 19.2 电商网站爬虫 ### 19.3 社交媒体爬虫 --- ## 二十、2026爬虫技术趋势 ### 20.1 AI辅助爬虫 - **智能解析**: 使用GPT/Vision模型理解页面结构 - **自动识别**: AI自动识别数据字段类型 - **验证码解决**: 深度学习自动识别验证码 - **内容理解**: 自然语言理解提取关键信息 ### 20.2 云原生爬虫 - **无服务器架构**: Lambda/Cloud Functions - **容器化部署**: Docker/Kubernetes - **弹性扩展**: 自动扩缩容 - **成本优化**: 按需付费 ### 20.3 反爬技术演进 | 反爬技术 | 应对策略 | |----------|----------| | TLS指纹检测 | 定制TLS指纹 | | 浏览器指纹 | Selenium + stealth | | 行为分析 | 模拟人类行为 | | 验证码 | AI识别/人工打码 | | IP限制 | 代理池轮换 | ### 20.4 合规爬虫最佳实践 1. 遵守robots.txt 2. 设置合理的访问频率 3. 不采集个人隐私数据 4. 遵守网站服务条款 5. 保护采集数据的版权 6. 数据脱敏处理 7. 建立数据访问日志 --- ## 扩展模块E:高级爬虫架构实现 ### E.1 分布式爬虫系统实现 ### E.2 反爬策略完整实现 --- ## 扩展模块F:数据提取与清洗工具 ### F.1 数据清洗完整流程 ### F.2 数据验证规则表 | 字段类型 | 验证规则 | 正则表达式 | 示例 | |---------|---------|-----------|------| | 手机号 | 11位,以1开头 | `^1[3-9]\d{9}$` | 13812345678 | | 固话 | 7-8位数字 | `^\d{7,8}$` | 0101234567 | | 邮箱 | 标准邮箱格式 | `^[\w.-]+@[\w.-]+\.\w+$` | user@example.com | | 身份证 | 18位身份证号 | `^[1-9]\d{5}(18|19|20)\d{2}(0[1-9]|1[0-2])(0[1-9]|[12]\d|3[01])\d{3}[\dXx]$` | 11010119900101123X | | URL | HTTP/HTTPS URL | `^https?://[\w.-]+(:\d+)?(/.*)?$` | [URL removed] | | IP地址 | IPv4 | `^\d{1,3}\.\d{1,3}\.\d{1,3}\.\d{1,3}$` | 192.168.1.1 | | 日期 | YYYY-MM-DD | `^\d{4}-\d{2}-\d{2}$` | 2024-01-15 | | 价格 | 数字(可选货币符号) | `^[¥$]?\d+(\.\d{2})?$` | ¥99.00 | --- ## 扩展模块G:爬虫合规与法律指南 ### G.1 数据采集合规检查清单 ### G.2 合规边界指南 | 数据类型 | 公开数据 | 用户授权数据 | 需特别许可 | 禁止采集 | |---------|---------|-------------|-----------|---------| | 产品信息 | ✅ | - | - | - | | 价格数据 | ✅ | - | - | - | | 新闻文章 | ✅ | - | - | - | | 联系方式 | ⚠️ | ✅ | - | ❌ | | 个人信息 | ❌ | ✅ | ✅ | ❌ | | 银行信息 | - | - | - | ❌ | | 医疗记录 | - | ✅ | ✅ | ❌ | | 账号密码 | - | - | - | ❌ | --- ## 扩展模块H:爬虫项目SOP完整流程 --- > 本扩展模块版本: v2.0 > 最后更新: 2026年1月 > 适用场景: 网页爬虫开发、反爬绕过、数据清洗、合规检查

    Reviews

    No reviews yet - be the first to share your experience.

    Only users who have downloaded or purchased this skill can leave a review.

    Security Scanned

    Passed automated security review

    Permissions

    Read Files

    File Scopes

    web-scraper-engine/**

    No API needed

    Creator

    Frequently Asked Questions

    More Premium Skills

    Free