2 个不稳定版本
0.3.0 | 2021年2月13日 |
---|---|
0.2.0 | 2020年5月24日 |
0.1.0 |
|
#784 in 解析器实现
951 每月下载量
用于 4 crates
53KB
871 行
robotstxt
Google 的 robots.txt 解析器和匹配器 C++ 库的本地 Rust 版本。
- 本地 Rust 版本,无第三方crate依赖
- 无不安全代码
- 保留原始库的所有行为
- 与原始库一致的 API
- 100% 通过 Google 原始测试
安装
[dependencies]
robotstxt = "0.3.0"
快速开始
use robotstxt::DefaultMatcher;
let mut matcher = DefaultMatcher::default();
let robots_body = "user-agent: FooBot\n\
disallow: /\n";
assert_eq!(false, matcher.one_agent_allowed_by_robots(robots_body, "FooBot", "https://foo.com/"));
关于
引用 Google 的 robots.txt 解析器和匹配器仓库的 README
机器人排除协议 (REP) 是一个标准,允许网站所有者通过一个具有特定语法的简单文本文件来控制哪些 URL 可以被自动化客户端(即爬虫)访问。它是我们所知道的互联网的基本构建块之一,也是搜索引擎能够运行的原因。
由于过去 25 年中 REP 仅是一个事实上的标准,不同的实现者对 robots.txt 的解析略有不同,导致了一些混乱。本项目旨在通过发布 Google 使用的解析器来解决这一问题。
该库是 Googlebot(Google 的爬虫)用于根据网站管理员在 robots.txt 文件中提供的规则确定它可以访问哪些 URL 的生产代码(即一些内部头文件和等效符号)的略微修改版本。该库以开源形式发布,以帮助开发者构建能够更好地反映 Google 的 robots.txt 解析和匹配的工具。
crate robotstxt 旨在将 Google 的 robots.txt 解析器和匹配器从 C++ 转换为 Rust。
测试
$ git clone https://github.com/Folyd/robotstxt
Cloning into 'robotstxt'...
$ cd robotstxt/tests
...
$ mkdir c-build && cd c-build
...
$ cmake ..
...
$ make
...
$ make test
Running tests...
Test project ~/robotstxt/tests/c-build
Start 1: robots-test
1/1 Test #1: robots-test ...................... Passed 0.33 sec
许可
robotstxt 解析器和匹配器 Rust 库根据 Apache 许可证条款进行许可。有关更多信息,请参阅 LICENSE。