#web-scraping #html-parser #http-request #css-selectors #data #extract

wappu

Wappu是一个专为Rust设计的快速灵活的网页抓取库,旨在高效地导航和提取网站数据。非常适合数据挖掘、内容聚合和Web自动化任务。

7个版本

0.3.0 2024年3月31日
0.2.4 2024年3月5日
0.2.2 2024年2月29日
0.1.0 2024年2月25日

#255 in HTTP客户端

Apache-2.0

42KB
1K SLoC

Wappu:Rust网页抓取库

Wappu是一个用Rust编写的全面的网页抓取库,设计用于易用性和性能。它无缝集成了HTTP客户端功能与强大的HTML解析功能,使用户能够高效地获取和解析Web内容。

特性

  • 异步HTTP请求:使用易于使用的HTTP客户端异步获取网页。
  • HTML解析:轻松解析和查询HTML文档以提取相关数据。
  • 灵活的选择器:使用类似CSS的选择器定位和提取解析的HTML中的元素。
  • 错误处理:对网络请求和HTML解析进行强大的错误处理。

入门指南

先决条件

确保您的系统已安装Rust和Cargo。Wappu需要Rust版本1.40或更高版本。

安装

将Wappu添加到项目的Cargo.toml

[dependencies]
wappu = "0.2.4"
reqwest = "0.11.24"

快速示例

以下是一个快速示例,用于获取并解析example.com的标题

use wappu::{WappuClient, HtmlParser, Selector};
#[tokio::main]
async fn main() {
    let client = WappuClient::new();
    let html_content = client.get("http://example.com", None).await.expect("Failed to fetch content");

    let parsed_html = HtmlParser::new().parse_html(&html_content.text());
    let mut selector = Selector::new();
    let title_selector = selector.from_tag_name("h1");
    let title_selection = title_selector.select(&parsed_html);
    let title_text = title_selection.text();

    println!("Title: {}", title_text);
}

文档

有关详细文档(包括API参考和高级用法),请访问Wappu文档。(尚未完成)

贡献

欢迎贡献!请参阅我们的贡献指南以获取更多详细信息。

许可

Wappu根据Apache License 2.0许可 - 请参阅LICENSE文件以获取详细信息。

致谢

  • 感谢Rust社区提供宝贵的资源和支持。
  • 特别感谢httpbin提供的HTTP请求和响应服务,这使得测试HTTP客户端功能变得更容易。

依赖项

~8–19MB
~306K SLoC