libhtmlfilter 0.1.0

A tool to filter html by tags and classes
Documentation
# HTML过滤库使用文档

## 概述

本库提供了一个用于过滤HTML内容的工具,支持正向过滤和反向过滤。正向过滤会移除指定的tag和class,而反向过滤则会保留指定的tag和class,移除其他所有内容。此外,本库还支持仅使用tag或class进行过滤。

## 功能

- **正向过滤**:移除指定的tag和class。
- **反向过滤**:保留指定的tag和class,移除其他所有内容。
- **仅使用tag过滤**:仅移除或保留指定的tag。
- **仅使用class过滤**:仅移除或保留指定的class。

## 依赖

本库依赖以下crate:

- `kuchiki`:用于HTML解析和操作。
- `reqwest`:用于HTTP请求。
- `std`:标准库。

## 安装

在`Cargo.toml`文件中添加依赖:

```toml
[dependencies]
libhtmlfilter = "0.1.0"
```

## 使用方法

### 导入库

在你的Rust文件中导入库:

```rust
use html_filter::{process_url, reverse_process_url};
```

### 正向过滤

使用`process_url`函数进行正向过滤:

#### 正向过滤示例(同时使用tag和class)

```rust
fn main() {
    let url = "https://example.com";
    let tags = vec!["script", "style"];
    let classes = vec!["hidden", "no-display"];
    let output_dir = "filtered_html";

    process_url(url, &tags, &classes, output_dir);
}
```

#### 正向过滤示例(仅使用tag)

```rust
fn main() {
    let url = "https://example.com";
    let tags = vec!["script", "style"];
    let classes = vec![];
    let output_dir = "filtered_html";

    process_url(url, &tags, &classes, output_dir);
}
```

#### 正向过滤示例(仅使用class)

```rust
fn main() {
    let url = "https://example.com";
    let tags = vec![];
    let classes = vec!["hidden", "no-display"];
    let output_dir = "filtered_html";

    process_url(url, &tags, &classes, output_dir);
}
```

### 反向过滤

使用`reverse_process_url`函数进行反向过滤:

#### 反向过滤示例(同时使用tag和class)

```rust
fn main() {
    let url = "https://example.com";
    let tags = vec!["div", "p"];
    let classes = vec!["content", "main"];
    let output_dir = "filtered_html";

    reverse_process_url(url, &tags, &classes, output_dir);
}
```

#### 反向过滤示例(仅使用tag)

```rust
fn main() {
    let url = "https://example.com";
    let tags = vec!["div", "p"];
    let classes = vec![];
    let output_dir = "filtered_html";

    reverse_process_url(url, &tags, &classes, output_dir);
}
```

#### 反向过滤示例(仅使用class)

```rust
fn main() {
    let url = "https://example.com";
    let tags = vec![];
    let classes = vec!["content", "main"];
    let output_dir = "filtered_html";

    reverse_process_url(url, &tags, &classes, output_dir);
}
```

### 参数说明

- `url`:要过滤的HTML页面的URL。
- `tags`:要过滤的tag列表。如果为空,则不进行tag过滤。
- `classes`:要过滤的class列表。如果为空,则不进行class过滤。
- `output_dir`:保存过滤后HTML文件的目录。

## 许可证

本库采用 MIT 许可证。详细信息请参阅 LICENSE 文件。