SuperAPI AI 工具集

web-scraper

数据与分析

查看项目

更新于 10-15 15:21

技能介绍

Web Scraper 用于抓取网页内容(文本与图片),并保存为 HTML 或 Markdown 到本地。

用途

  • 将单个网页保存为 HTML 或 Markdown,便于离线查看或归档。
  • 递归抓取站点(跟随链接),将文档站点、博客等批量保存为结构化目录。

主要能力

  • 单页模式:HTML 输出保留原始页面结构,图片下载到 images/ 文件夹;Markdown 输出提取干净文本,默认自动下载图片到本地 images/ 目录,并将图片 URL 转为相对路径,下载失败时回退为原始 URL。可用 --no-download-images 仅保留原始 URL。
  • 递归模式(--recursive):自动发现并跟随页面链接;--max-depth 控制深度(默认 2);--max-pages 限制总页数(默认 50);--same-domain 保持在同一域名内(默认开启);默认遵守 robots.txt;--rate-limit 设置请求间隔(默认 0.5 秒);跳过图片、脚本、CSS 和重复 URL;控制台实时输出成功/失败/跳过计数;按 URL 结构组织输出目录。
  • 依赖极少:仅需 requests 和 beautifulsoup4,使用纯 HTTP 请求,无需浏览器或驱动。
  • 自动文件名:未指定输出时根据 URL 生成安全文件名。

使用方式

  • 环境要求:Python 3.8+。
  • 安装依赖:cd {baseDir} 后执行 pip install -r requirements.txt,或手动执行 pip install requests beautifulsoup4。
  • 单页示例: {baseDir}/scripts/scrape.py --url "https://example.com" --format html --output /tmp/page.html {baseDir}/scripts/scrape.py --url "https://example.com" --format md --output /tmp/page.md
  • 递归示例: {baseDir}/scripts/scrape.py --url "https://docs.example.com" --format md --recursive --max-depth 2 --output ~/Downloads/docs-archive
  • 其他常用参数:--no-download-images、--no-respect-robots、--rate-limit、--timeout。
  • 交互流程:询问要抓取的 URL;询问输出格式(HTML 或 Markdown);递归模式询问最大深度与最大页数(可选,有默认值);询问保存位置(或建议默认路径如 /tmp/ 或 ~/Downloads/);运行脚本并确认成功;显示保存的文件/目录路径。

适用场景

  • 将在线文档、博客、维基页面等保存为离线 HTML 或 Markdown。
  • 对自有站点进行批量归档与备份。
  • 需要文本与图片一并保存的轻量抓取任务。

限制与注意事项

  • 部分站点会阻止自动访问;工具使用标准 HTTP 请求与较真实的 User-Agent。
  • 不支持 JavaScript 动态加载的图片,可能缺失。
  • 大页面或图片较多时下载耗时较长。
  • 递归抓取可能产生大量文件,需确保磁盘空间充足。
  • 默认遵守 robots.txt;--no-respect-robots 仅建议用于自有站点。
  • 速率限制默认 0.5 秒,公共站点不建议低于 0.2 秒。
  • 建议先以小规模测试(如 --max-depth 1 --max-pages 10)。
  • 需确保拥有抓取和归档目标站点的权限。
  • 连接错误时检查网络与 URL;403 可能表示被拦截;超时可增大 --timeout。