如何使用paths_allowed?代码报错找不到该函数的问题咨询
关于
paths_allowed函数的使用及报错问题解答 问题1:报错could not find function "paths_allowed"的解决方法
这个错误的核心原因是你的R环境里还没有安装并加载包含paths_allowed函数的包。paths_allowed是robotstxt包中的专用函数,用来检查URL是否符合网站爬虫规则,你需要先完成两步操作:
- 安装
robotstxt包:在R控制台执行命令:install.packages("robotstxt") - 加载
robotstxt包:安装完成后,每次使用该函数前都需要加载包:library(robotstxt)
另外,你提供的代码里存在小语法错误——URL字符串没闭合(少了一个双引号),正确写法应该是:
paths_allowed("https://collections.ed.ac.uk/art")
问题2:如何使用paths_allowed函数
paths_allowed的核心作用是根据目标网站的robots.txt规则,判断单个或多个URL是否允许爬虫访问,具体用法如下:
基础用法
直接传入URL(支持单个或多个),函数会自动获取目标网站的robots.txt并返回布尔值结果(TRUE表示允许访问,FALSE表示禁止):
# 检查单个URL paths_allowed("https://collections.ed.ac.uk/art") # 批量检查多个URL target_urls <- c("https://collections.ed.ac.uk/art", "https://collections.ed.ac.uk/books") paths_allowed(target_urls)
指定爬虫用户代理
默认情况下,函数使用"*"(代表所有爬虫)的规则判断。如果需要针对特定爬虫(比如你的自定义爬虫)验证规则,可以通过user_agent参数指定:
paths_allowed("https://collections.ed.ac.uk/art", user_agent = "MyCustomCrawler/1.0")
手动传入robots.txt内容
如果你已经提前获取了目标网站的robots.txt内容,可以直接通过txt参数传入,避免重复请求网站:
# 假设已获取robots.txt内容 robots_content <- "User-agent: *\nDisallow: /admin/\nAllow: /art/" paths_allowed("https://collections.ed.ac.uk/art", txt = robots_content)
注意事项
- 确保网络可以正常访问目标网站,否则函数无法获取
robots.txt会报错; - 若网站
robots.txt未明确指定某路径规则,函数默认返回TRUE(允许访问)。
内容的提问来源于stack exchange,提问作者xiongshizhao
相关产品推荐
相关产品推荐

