#web-scraping #scraping #proxy #scrape #api-key #scrapingapi

webscrapingapi

WebScrapingApi是一个API,允许使用旋转代理抓取网站以防止封禁。这个Rust SDK使得在您的任何项目中实现API的使用更加容易。

1个不稳定版本

0.1.0 2022年6月27日

#23 in #scrape

MIT/Apache

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