创建函数以避免 R for 循环中的 url 错误
Create function to avoid url error in R for loop
我正在遍历一个充满 urls 的 .csv 来抓取网站(授权抓取)。
我正在使用 trycatch
函数来尝试避免 for
循环中断。
但我注意到它停止了一些 url 秒(使用 download.file
)。
所以我现在使用的是 « 这是有效的 url 吗? » 取自 post 的函数:
[
url_works <- function(url){
tryCatch(
identical(status_code(HEAD(url)),200L),
error = function(e){
FALSE
})
}
但即使使用此函数,并且仅当函数的结果为 TRUE
时才循环,有时我的循环会在某些 url 处中断,并且出现以下错误:
> HTTP status was '500 Internal Server Error'
我想了解这个错误,所以我在 URL 函数中添加了这个案例以忽略这种 url 类型再次出现的情况。
有什么想法吗?
谢谢!
你的tryCatch
语法有误,我也改了错误信息打印错误:
通用的 tryCatch
看起来像:
tryCatch({
operation-you-want-to-try
}, error = function(e) do-this-on-error
)
因此对于您的代码:
url_works <- function(url){
tryCatch({
s1 <- status_code(HEAD(url))
}, error = function(e) print(paste0(url, " ", as.character(e)))
)
identical(s1, 200L)
}
我正在遍历一个充满 urls 的 .csv 来抓取网站(授权抓取)。
我正在使用 trycatch
函数来尝试避免 for
循环中断。
但我注意到它停止了一些 url 秒(使用 download.file
)。
所以我现在使用的是 « 这是有效的 url 吗? » 取自 post 的函数:
[
url_works <- function(url){
tryCatch(
identical(status_code(HEAD(url)),200L),
error = function(e){
FALSE
})
}
但即使使用此函数,并且仅当函数的结果为 TRUE
时才循环,有时我的循环会在某些 url 处中断,并且出现以下错误:
> HTTP status was '500 Internal Server Error'
我想了解这个错误,所以我在 URL 函数中添加了这个案例以忽略这种 url 类型再次出现的情况。
有什么想法吗? 谢谢!
你的tryCatch
语法有误,我也改了错误信息打印错误:
通用的 tryCatch
看起来像:
tryCatch({
operation-you-want-to-try
}, error = function(e) do-this-on-error
)
因此对于您的代码:
url_works <- function(url){
tryCatch({
s1 <- status_code(HEAD(url))
}, error = function(e) print(paste0(url, " ", as.character(e)))
)
identical(s1, 200L)
}