在R中使用GET函数抓取Web时发生超时错误

问题描述

我正尝试从https://old.nasdaq.com/screening/companies-by-name.aspx?letter=0&exchange=nyse&render=download下载文件 在R中具有download.file()函数。事实证明,该请求已被主机拒绝。然后我尝试了

httr::GET(url=url,add_headers("User-Agent"="Mozilla/5.0"))

伪造标题,但仍然无法正常工作。这很奇怪,因为在Python中应用了相同的技巧,并以200的状态代码通过了测试。

我该如何解决?谢谢。

解决方法

欢迎堆积如山的雨白。

代替使用download.file(),您可以简单地将文件url作为read.csv()的参数插入,如下所示:

file_url = 'https://old.nasdaq.com/screening/companies-by-name.aspx?letter=0&exchange=nyse&render=download'
df = read.csv(file_url,header = FALSE)

如果出于任何原因要下载文件,可以执行以下操作:

file_url = 'https://old.nasdaq.com/screening/companies-by-name.aspx?letter=0&exchange=nyse&render=download'
file_path = '~/Downloads/companylist.csv'
download.file(file_url,file_path)
read.csv(file_path,header = FALSE)

让我们知道您的问题是否已解决。