我有一个PDF URL列表,我想下载这些PDF。但是,并非所有URL仍然存在,这就是为什么我之前使用RCurl函数url.exists()
检查它们的原因。但是,对于某些URL,此功能将永远运行而不会产生结果。我什至无法使用withTimeout()
函数停止它。
我将url.exists()
包装到withTimeout()
中,但是超时不起作用:
library(RCurl)
library(R.utils)
url <- "http://www.shangri-la.com/uploadedFiles/corporate/about_us/csr_2011/Shangri-La%20Asia%202010%20Sustainability%20Report.pdf"
withTimeout(url.exists(url), timeout = 15, onTimeout = "warning")
该函数永远运行,超时将被忽略。
我的问题:
我尝试过的其他检查(但没有整理出该URL)是
try(length(getBinaryURL(url))>0) == T
http_status(GET(url))
!class(try(GET(url]))) == "try-error"
答案 0 :(得分:0)
library(httr)
urls <- c(
'https://www.deakin.edu.au/current-students/unitguides/UnitGuide.php?year=2015&semester=TRI-1&unit=SLE010',
'https://www.deakin.edu.au/current-students/unitguides/UnitGuide.php?year=2015&semester=TRI-2&unit=HMM202',
'https://www.deakin.edu.au/current-students/unitguides/UnitGuide.php?year=2015&semester=TRI-2&unit=SLE339'
)
sapply(urls, url_success, config(followlocation = 0L), USE.NAMES = FALSE)
此功能类似于file.exists,并确定对特定URL的请求是否响应没有错误。我们发出请求,但要求服务器不要返回正文。我们只处理标题。