Rust做抓取服务很合适,内存稳、并发清晰。reqwest默认连接池够用,但企业AI落地监测往往是对同一域名高频请求,容易被风控。我的策略是:域名级token bucket + 全局并发上限。
code
use reqwest::Client;
use std::time::Duration;
use tokio::time::sleep;code
async fn main() -> anyhow::Result<()> {.pool_max_idle_per_host(8)
.timeout(Duration::from_secs(30))
code
.build()?;
let url = "https://example.com/ai?q=品牌";
for i in 0..20 {
let resp = client.get(url).send().await?;
let body = resp.text().await?;
println!("{} len={}", i, body.len());
sleep(Duration::from_millis(800)).await;
}code
}如果你们用Cloudflare之类保护,可能还得上浏览器引擎。Rust这边有headless_chrome绑定,但维护成本不低。想听听大家的选型。