2 个版本
0.0.1-alpha.3 | 2023年8月28日 |
---|---|
0.0.1-alpha.2 | 2023年8月27日 |
#2740 in 数据库接口
45KB
860 行
sqlite-robotstxt
sqlite-robotstxt 是解析 robots.txt
文件的 SQLite 扩展。基于 sqlite-loadable-rs
和 robotstxt
crate。
使用说明
根据 robots.txt 的规则,检查指定的 User-Agent 是否可以访问特定的路径。
select robotstxt_matches(
readfile('robots.txt'),
'My-Agent',
'/path'
); -- 0 or 1
查找 robots.txt 文件中指定的所有单独规则。
select *
from robotstxt_rules(
readfile('tests/examples/en.wikipedia.org.robots.txt')
)
limit 10;
/*
┌────────────────────────────┬────────┬───────────┬──────┐
│ user_agent │ source │ rule_type │ path │
├────────────────────────────┼────────┼───────────┼──────┤
│ MJ12bot │ 12 │ disallow │ / │
│ Mediapartners-Google* │ 16 │ disallow │ / │
│ IsraBot │ 20 │ disallow │ │
│ Orthogaffe │ 23 │ disallow │ │
│ UbiCrawler │ 28 │ disallow │ / │
│ DOC │ 31 │ disallow │ / │
│ Zao │ 34 │ disallow │ / │
│ sitecheck.internetseer.com │ 39 │ disallow │ / │
│ Zealbot │ 42 │ disallow │ / │
│ MSIECrawler │ 45 │ disallow │ / │
└────────────────────────────┴────────┴───────────┴──────┘
*/
与 sqlite-http 一起使用,动态请求 robots.txt 文件。
select *
from robotstxt_rules(
http_get_body('https://www.reddit.com/robots.txt')
)
limit 10;
/*
┌────────────┬────────┬───────────┬─────────────────────┐
│ user_agent │ source │ rule_type │ path │
├────────────┼────────┼───────────┼─────────────────────┤
│ 008 │ 3 │ disallow │ / │
│ voltron │ 7 │ disallow │ / │
│ bender │ 10 │ disallow │ /my_shiny_metal_ass │
│ Gort │ 13 │ disallow │ /earth │
│ MJ12bot │ 16 │ disallow │ / │
│ PiplBot │ 19 │ disallow │ / │
│ * │ 22 │ disallow │ /*.json │
│ * │ 23 │ disallow │ /*.json-compact │
│ * │ 24 │ disallow │ /*.json-html │
│ * │ 25 │ disallow │ /*.xml │
└────────────┴────────┴───────────┴─────────────────────┘
*/
待办事项
-
robotstxt_allowed(rules, path)
在robotstxt_user_agents
上的重载 - 网站地图?
- 未知指令?
依赖关系
~13MB
~255K SLoC