无法访问 Web 上的数据 -URL HTTP 状态为“403 Forbidden”-
Posted
技术标签:
【中文标题】无法访问 Web 上的数据 -URL HTTP 状态为“403 Forbidden”-【英文标题】:Can not access data on web -URL HTTP status was '403 Forbidden'- 【发布时间】:2021-12-12 03:40:57 【问题描述】:这个简单的代码...
url1 <- 'https://www.sec.gov/Archives/edgar/data/0001336528/0001172661-21-001865.txt'
data1 <- readLines(url1)
...导致以下错误消息:
我尝试了很多方法,我得出的结论是,当我的请求是由 R(使用该代码或任何代码)发出时,该站点拒绝了我的请求。有时,我没有出错,代码运行良好,但通常没有。我总是可以直接从浏览器保存 .txt(我无法使用 R 将其保存到我的电脑),然后从我的电脑中的文件导入。
示例 -> 我将页面另存为 .txt,然后
data1 <- readLines("Persh01.txt")
由于它有时会工作,我还创建了一个循环尝试直到完成,它完成了工作,但我更换了电脑,它似乎不再工作了。
data1 <- NA
data1 <- try(readLines(url1))
while (inherits(data1, "try-error"))
data1 <- try(readLines(url1))
有人会帮助我吗? 谢谢
【问题讨论】:
【参考方案1】:您需要在服务器接受您的请求之前将几个标头传递给服务器。在这种情况下,您需要一个合适的User-Agent
字符串和一个Connection = "keep alive"
来防止403 错误。
library(httr)
url1 <- 'https://www.sec.gov/Archives/edgar/data/0001336528/0001172661-21-001865.txt'
UA <- "Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:93.0) Gecko/20100101 Firefox/93.0"
res <- GET(url1, add_headers(`Connection` = "keep-alive", `User-Agent` = UA))
data1 <- strsplit(content(res), "\n")[[1]]
head(data1, 10)
#> [1] "<SEC-DOCUMENT>0001172661-21-001865.txt : 20210816"
#> [2] "<SEC-HEADER>0001172661-21-001865.hdr.sgml : 20210816"
#> [3] "<ACCEPTANCE-DATETIME>20210816163055"
#> [4] "ACCESSION NUMBER:\t\t0001172661-21-001865"
#> [5] "CONFORMED SUBMISSION TYPE:\t13F-HR"
#> [6] "PUBLIC DOCUMENT COUNT:\t\t2"
#> [7] "CONFORMED PERIOD OF REPORT:\t20210630"
#> [8] "FILED AS OF DATE:\t\t20210816"
#> [9] "DATE AS OF CHANGE:\t\t20210816"
#> [10] "EFFECTIVENESS DATE:\t\t20210816"
请注意,该网站的 robot.txt
文件不允许从该网站的这一部分进行网络抓取和索引,因此您需要检查您是否违反了该网站的使用政策。
【讨论】:
非常感谢。这是格栅。仅供参考,该网站似乎允许它:#SEC Allow: /Archives/edgar/data Disallow: /Archives/bin Disallow: /Archives/etc Disallow: /Archives/usr Disallow: /cgi-bin禁用:/bin 禁用:/Archives/edgar/vprr/XXXX 禁用:/Archives/edgar/vprr/vprr_removal 禁用:/Archives/edgar/vprr/bin 禁用:/nb 禁用:/video/live 禁用:/Archives/edgar /data/1473971/000109181814000042/ex101002.gif 禁止:/node 禁止:/spotlight/equity-market-structure-advisory-committee.shtml以上是关于无法访问 Web 上的数据 -URL HTTP 状态为“403 Forbidden”-的主要内容,如果未能解决你的问题,请参考以下文章
Web 应用程序项目 Himall.Web 已配置为使用 IIS。 无法访问 IIS 元数据库
Windows8 Web应用程序项目 已配置为使用IIS 无法访问IIS元数据库,您没有足够的特权访问计算机上的II