SDK для Rust
Библиотека для Rust включает движок браузера и библиотеку отпечатков и работает без интерфейса приложения. Используйте её в скрапере, CI-задаче или серверном воркере.
Установка
cargo add shardxБыстрый старт
// cargo add shardx (illustrative; see the crate readme)
use shardx::{LaunchOptions, ShardX, ShardXOptions};
#[tokio::main]
async fn main() -> anyhow::Result<()> {
let sdk = ShardX::new(ShardXOptions::default())?;
let profile = sdk.create_profile(Some("win-rtx4060")).await?;
let session = sdk.session(profile, LaunchOptions {
proxy: Some("socks5://user:pass@host:1080".into()),
..Default::default()
}).await?;
let page = session
.new_page("https://browserleaks.com/quic")
.await?;
println!("{:?}", page.get_title().await?);
session.close().await
}Что SDK делает за вас
- Скачивает движок и библиотеку из 220 профилей при первом использовании и кеширует их по ETag.
- Проверяет прокси на поддержку UDP и соответственно включает или выключает QUIC.
- Определяет часовой пояс, локаль и геолокацию по стране выхода прокси перед запуском.
- Рандомизирует CPU, RAM и версию платформы один раз для каждого сохранённого профиля, чтобы железо оставалось согласованным.
Крейт для Rust имеет тот же интерфейс, что SDK для Python и Node: при первом использовании он скачивает движок, Widevine CDM и встроенную библиотеку отпечатков в кеш пользователя, а затем запускает изолированные профили с теми же флагами подмены, что и интерфейс приложения.
С включённой по умолчанию фичей control функция session() одним вызовом запускает движок и подключает CDP-браузер chromiumoxide. Отключите фичу для более лёгкой сборки и используйте launch_cdp, чтобы получить cdp_url для собственного клиента. Поддерживаемые хосты: macOS arm64, Windows x64 и Linux x64.