You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何使用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

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.09 18:02:56