2个不稳定版本
0.2.0 | 2021年4月7日 |
---|---|
0.1.0 | 2020年12月13日 |
#43 in #public
51KB
966 行
PbO
氧化铅
是围绕pubproxy.com公共代理API的包装器。
氧化铅
旨在在尽可能使常规使用舒适的同时,使API使用错误变得不可能。
无密钥API限制
每日限制
在编写此文档时,没有API密钥,pubproxy API限制用户每次请求5个代理,每天50次请求。每次请求的最大代理数始终被使用,以最小化速率限制,并在请求限制内获取尽可能多的代理,这意味着您每天可以获取250个代理,而无需API密钥。
速率限制
没有API密钥,pubproxy将用户限制为每秒一个请求,因此Fetcher
将尝试确保没有API密钥时,最多每秒只进行一次请求。这包括在不同线程之间同步:然而,由于从同一IP运行多个程序可能会导致速率限制,因此仍然可能存在问题。速率限制非常严重(可能会拒绝请求数小时),因此应尽可能避免。
快速入门
use iso_country::Country;
use lead_oxide::{
errors::ApiError,
fetcher::Fetcher,
opts::Opts,
types::{Countries, Level, Protocol, TimeToConnect},
};
use std::{convert::TryFrom, time::Duration};
fn main() -> Result<(), ApiError> {
// Fetcher for SOCKS5 proxies located in the US and Canada that support POST requests
let mut socks_fetcher = Fetcher::new(
Opts::builder()
.protocol(Protocol::Socks5)
.countries(Countries::allow().countries(&[Country::US, Country::CA]))
.post(true)
.build(),
);
// Fetcher for Elite HTTPS proxies that connected in 15 seconds or less
let mut https_fetcher = Fetcher::new(
Opts::builder()
.protocol(Protocol::Http)
.https(true)
.level(Level::Elite)
.time_to_connect(TimeToConnect::try_from(Duration::from_secs(15)).unwrap())
.build(),
);
// Get one SOCKS proxy and 10 HTTPS proxies
let socks_proxy = &socks_fetcher.try_get(1)?[0];
let https_proxies = https_fetcher.try_get(10)?;
println!("SOCKS proxy: {:#?}", socks_proxy);
println!("HTTPS proxies {:#?}", https_proxies);
Ok(())
}
依赖项
~3.5–4.5MB
~115K SLoC