udaysinh-git/gimmethatdata

GitHub: udaysinh-git/gimmethatdata

一款功能全面、集成终端UI的异步网页抓取工具,专注于高效获取并结构化存档网页内容及社交媒体数据。

Stars: 0 | Forks: 0

gimmethatdata mascot
gimmethatdata

一款集成 Textual TUI 的一体化异步网页抓取器。基于 Python 构建,由 uv 管理。

status python managed%20by-uv docs github

gimmethatdata banner

抓取任何网站——单个页面、选定页面或整个站点——生成一个包含整洁 Markdown 文件和结构化资源清单(图片、视频、嵌入内容、链接、标签)的文件夹。具备分层反机器人绕过、代理支持、可恢复、全文可搜索、可导出 PDF 等功能,并拥有真正的 Textual TUI 界面。此外,还内置了一个专门的 Instagram 存档器,并提供互动数据分析。 ## 快速开始 ``` # clone 加上 install git clone https://github.com/udaysinh-git/gimmethatdata cd gimmethatdata uv sync # 拉入额外组件 + Chromium + 完整性检查 uv run gimmethatdata setup # --full 还会安装 OCR + Instagram 额外组件 # 抓取单个页面 uv run gimmethatdata scrape https://example.com --out ./out # 爬取整个网站,含深度和预算上限 uv run gimmethatdata crawl https://example.com --depth 2 --max-pages 50 # 启动 TUI (主页 · 新建任务 · 进度 · 检查器 · 搜索 · 站点地图 · 差异 · 设置 · Instagram) uv run gimmethatdata tui ``` ## 功能概览 ### 抓取引擎 - **三种模式**:单个 URL · 多个 URL(通过 `--urls-file`)· 全站爬取。 - **4 层抓取栈**,遇到 Cloudflare 挑战、403/429/503 错误、Turnstile 时自动升级: - 第 1 层 — `httpx[http2]`(快速路径) - 第 2 层 — `curl_cffi`,使用 Chrome TLS 指纹 - 第 3 层 — `playwright` + `playwright-stealth`(JS 渲染 + 机器人墙) - 第 4 层 — FlareSolverr 适配器(通过环境变量启用) - **内置认证**:`--auth basic:u:p`、`--auth bearer:tok`、`--cookie k=v`、`--cookies-file cookies.txt`、`-H "Name: Value"`。 - **HTTP 缓存**(`--cache-dir`)遵守 `ETag` / `Last-Modified`,因此重新运行是免费的。 - **代理**支持轮换策略:轮询、按域名固定、按失败切换。 - **按域限速器** + 重试/退避。 - **PDF 输入** — 指向一个 `.pdf` URL,它会将文本和元数据渲染到相同的 `content.md` 布局中。 ### 输出布局(每个页面) ``` /// content.md # main content via trafilatura → markdownify, YAML frontmatter metadata.json # title, og:*, twitter:*, jsonld, headers, fetch tier, timing assets.json # every /