1个不稳定版本
0.1.0 | 2022年6月27日 |
---|
#23 in #scrape
18KB
210 行
WebScrapingApi Rust SDK
WebScrapingApi是一个API,允许使用旋转代理抓取网站以防止封禁。这个Rust SDK使得在您的任何项目中实现API的使用更加容易。
安装
添加以下依赖
webscrapingapi = "0.1.0"
API密钥
要使用API和SDK,您需要一个API密钥。您可以在WebScrapingApi注册以获取一个。
用法
使用SDK非常简单。以下是对API进行GET调用的示例
use webscrapingapi::WebScrapingAPI;
use webscrapingapi::QueryBuilder;
use std::collections::HashMap;
use std::error::Error;
async fn get_example(wsa: &WebScrapingAPI<'_>) ->Result<(), Box<dyn Error>> {
let mut query_builder = QueryBuilder::new();
query_builder.url("http://httpbin.org/headers");
query_builder.render_js("1");
let mut headers: HashMap<String, String> = HashMap::new();
headers.insert("Wsa-test".to_string(), "abcd".to_string());
query_builder.headers(headers);
let html = wsa.get(query_builder).await?.text().await?;
println!("{}", html);
Ok(())
}
async fn raw_get_example(wsa: &WebScrapingAPI<'_>) ->Result<(), Box<dyn Error>> {
let mut params: HashMap<&str, &str> = HashMap::new();
params.insert("url", "http://httpbin.org/headers");
let mut headers: HashMap<String, String> = HashMap::new();
headers.insert("Wsa-test".to_string(), "abcd".to_string());
let html = wsa.raw_get(params, headers).await?.text().await?;
println!("{}", html);
Ok(())
}
#[tokio::main]
async fn main() -> Result<(), Box<dyn Error>> {
let wsa: WebScrapingAPI = WebScrapingAPI::new("YOUR_API_KEY");
get_example(&wsa).await?;
raw_get_example(&wsa).await?;
Ok(())
}
请注意,为了从main中运行webscrapingapi的异步请求,我们使用了依赖项
tokio= {版本= "1",功能= ["full"] }
所有依赖项
urlencoding = "2.1.0"
reqwest = { version = "0.11", features = ["json"] }
tokio = { version = "1", features = ["full"] }
有关参数的更多信息,请参阅我们的文档
依赖项
~5–18MB
~265K SLoC