5 个版本
0.2.3 | 2023 年 4 月 22 日 |
---|---|
0.2.2 | 2019 年 11 月 3 日 |
0.2.1 | 2017 年 7 月 9 日 |
0.2.0 | 2017 年 7 月 8 日 |
0.1.0 | 2017 年 7 月 7 日 |
#2718 在 解析实现
371 每月下载量
用于 uupdump
23KB
441 行
TableExtract
TableExtract 是一个用于从 HTML 表格中提取数据的 Rust 库。它受到 Perl 的 HTML::TableExtract 的启发。
查看crate 文档以获取更多信息。
用法
TableExtract 在 crates.io 上。要使用它,只需将以下内容添加到您的 Cargo.toml
[dependencies]
table-extract = "0.2"
贡献
欢迎贡献!有两点需要注意
- 此项目使用来自 rustup 的稳定 Rust 工具链。
- 此项目使用
cargo fmt
以保持代码整洁。
许可证
© 2019 Mitchell Kember
TableExtract 在 MIT 许可证下提供;有关详细信息,请参阅LICENSE。
lib.rs
:
从 HTML 表格中提取数据的实用工具。
此库允许您从 HTML 文档中解析表格并遍历其行。有三个入口点
Table::find_first
找到第一个表格。Table::find_by_id
通过其 HTML id 找到表格。Table::find_by_headers
找到具有某些标题的表格。
这些操作都返回一个 Option<
Table
>
,因为在 HTML 中可能没有匹配的表格。一旦您有一个表格,您就可以遍历它并访问每个 Row
的内容。
示例
以下是一个简单的示例,它使用 Table::find_first
打印表格每行的单元格
let html = r#"
<table>
<tr><th>Name</th><th>Age</th></tr>
<tr><td>John</td><td>20</td></tr>
</table>
"#;
let table = table_extract::Table::find_first(html).unwrap();
for row in &table {
println!(
"{} is {} years old",
row.get("Name").unwrap_or("<name missing>"),
row.get("Age").unwrap_or("<age missing>")
)
}
如果文档包含多个表格,我们可以使用 Table::find_by_headers
方法来识别我们想要的那个表格
let html = r#"
<table></table>
<table>
<tr><th>Name</th><th>Age</th></tr>
<tr><td>John</td><td>20</td></tr>
</table>
"#;
let table = table_extract::Table::find_by_headers(html, &["Age"]).unwrap();
for row in &table {
for cell in row {
println!("Table cell: {}", cell);
}
}
依赖项
~4–9.5MB
~94K SLoC