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爬虫, 匿名通信, 反汇编, 可视化界面, 命令控制, 工作量证明, 归档链接, 数据采集, 暗网工具, 暗黑网络, 深度网络, 递归爬取, 通知系统, 附件提取, 隐私工具