kvncrw/toru-scraper

GitHub: kvncrw/toru-scraper

Rust实现的高性能Tor网络HTTP客户端和网页爬虫,可自动解决.onion站点的工作量证明反爬挑战并支持递归爬取XenForo论坛。

Stars: 0 | Forks: 0

# toru-scraper Tor HTTP 客户端和网页爬虫,可自动解决 .onion 站点的工作量证明挑战。通过 SOCKS5 Tor 代理路由所有流量,透明处理 Tartarus (SHA-256) 和 BasedFlare (Argon2id) 反爬虫挑战,并包含递归 XenForo 爬虫,支持附件和存档链接提取。 ## 功能 - 通过 Tor 的 SOCKS5h 代理路由 - 自动检测并解决 Tartarus (SHA-256) PoW - 自动检测并解决 BasedFlare (Argon2id) PoW - 手动跟随重定向并检测循环 - 跨请求持久化 Cookie 容器 - 通过 2captcha API 解决 reCAPTCHA(用于 archive.today) - 递归 XenForo 论坛/主题/页面爬虫 - 附件提取(图片、文件、视频、音频) - 外部存档链接收集(Wayback、archive.today、GhostArchive、Google 缓存) - 存档 URL 解析和原始 URL 提取 - 速率限制和 URL 去重 - CLI 包含 `fetch`、`crawl` 和 `solve-tartarus` 子命令 ## 安装 ``` cargo install --git https://github.com/kvncrw/toru-scraper ``` 或从源码构建: ``` git clone https://github.com/kvncrw/toru-scraper cd toru-scraper cargo build --release ``` 需要运行 Tor 守护进程,SOCKS5 默认端口为 9050。 ## 使用方法 ### 获取单个页面 ``` toru fetch http://example.onion/page toru fetch http://example.onion/page --output page.html toru fetch http://example.onion/page --proxy socks5h://10.0.0.1:9050 ``` ### 爬取 XenForo 站点 ``` toru crawl http://forum.onion --delay 2000 --max-pages 500 toru crawl http://forum.onion --output archive-links.jsonl --skip-attachments ``` ### 解决 Tartarus 挑战(独立使用) ``` toru solve-tartarus "challenge-salt-string" 16 ``` ## 库的使用 ``` use toru_scraper::{Client, Config}; #[tokio::main] async fn main() -> toru_scraper::Result<()> { let client = Client::new(Config::default())?; let response = client.fetch("http://example.onion/page").await?; if response.is_html() { println!("{}", response.text()); } Ok(()) } ``` ### 爬取 ``` use toru_scraper::{Client, Config, Crawler, CrawlerConfig}; #[tokio::main] async fn main() -> toru_scraper::Result<()> { let client = Client::new(Config::default())?; let mut crawler = Crawler::new(client, CrawlerConfig { delay_ms: 2000, max_pages: 100, ..CrawlerConfig::default() }); crawler.crawl("http://forum.onion", |url, response| { println!("{} -> {} ({} bytes)", url, response.status, response.body.len()); }).await?; println!("Found {} archive links", crawler.archive_links.len()); Ok(()) } ``` ## 许可证 MIT
标签:2captcha, Argon2id, onion站点, PoW破解, reCAPTCHA, Rust开发, SHA256, SOCKS5代理, Tor网络, URL去重, Wayback Machine, XenForo爬虫, 匿名通信, 反汇编, 可视化界面, 命令控制, 工作量证明, 归档链接, 数据采集, 暗网工具, 暗黑网络, 深度网络, 递归爬取, 通知系统, 附件提取, 隐私工具