首先,我们需要安装必要的库。在终端中运行以下命令来安装 `scraper` 和 `reqwest` 库:
```rust
cargo install scraper reqwest
```
然后,我们可以开始编写程序。以下是一个基本的爬虫程序,用于爬取 上的图片:
```rust
use reqwest;
use scraper::{html, parse};
use std::collections::HashSet;
fn main() {
let proxy_host =
let proxy_port =
// 创建一个设置
let proxy = reqwest::ProxyServer::new(proxy_host, proxy_port).unwrap();
// 创建一个 HashSet 来存储我们已经访问过的 URL
let mut visited_urls = HashSet::new();
// 获取网页 HTML
let mut response = proxy.get("https://www.10jqka.com.cn/").unwrap();
response.set_proxy(proxy_host, proxy_port);
let html = response.text().unwrap();
// 解析 HTML 并提取图片 URL
let urls = html
.parse()
.unwrap()
.select(|node| node.is_text_node() && node.as_str().contains("src"))
.map(|node| node.as_str().split(" ").nth(1).unwrap())
.collect::<HashSet<String>>();
// 访问每个 URL 并提取图片
for url in urls {
if !visited_urls.contains(url) {
visited_urls.insert(url);
// 下载图片
let mut response = proxy.get(url).unwrap();
response.set_proxy(proxy_host, proxy_port);
let file = reqwest::cookies::CookieJar::new();
let mut file = file.load("cookies.txt").unwrap();
response.set_cookies(file);
let body = response.text().unwrap();
let mut file = File::create("image.jpg").unwrap();
file.write_all(body.as_bytes()).unwrap();
}
}
}
```
这个程序首先创建了一个设置,然后使用 `reqwest` 库向目标网站发送请求并获取 HTML。