我正在使用以下代码: https://www.r-bloggers.com/htmltotext-extracting-text-from-html-via-xpath/ 这个问题在github上:
https://github.com/tonybreyal/Blog-Reference-Functions/blob/master/R/htmlToText/htmlToText.R
它创建一个从html提取文本的命令:
htmlToText
我有一个循环,如下所示:
for(i in 1:10000){
input <- URL[i]
txt <- htmlToText(input)
write.table(txt, file = paste0(URL[i], ".txt", sep=""))
}
当它遇到以下错误时,我希望它转到下一个我:
Error in function (type, msg, asError = TRUE) : "Could not resolve host: NA"
有没有办法做到这一点? 它可能会帮助许多其他人使用此代码 谢谢
答案 0 :(得分:0)
对于以后的帖子,请查看如何提供minimal reproducible example/attempt;这包括清楚地说明您使用了哪些软件包。
在这里,我假设您正在使用read_html
中的rvest
。
您可以使用tryCatch
来避免退出循环。我也将for
循环替换为lapply
。
这是一个例子
library(rvest)
URL <- c("http://asd", "http://had.co.nz");
lst <- lapply(URL, function(ss)
result <- tryCatch(
read_html(ss),
error = function(e) {
print(sprintf("Could not resolve host: %s", ss));
return(NULL);
}
))
#[1] "Could not resolve host: http://asd"
lst;
#[[1]]
#NULL
#
#[[2]]
#{xml_document}
#<html lang="en">
#[1] <head>\n<meta http-equiv="Content-Type" content="text/html; charset=UTF-8 ...
#[2] <body id="page-top" class="index">\n\n<!-- Navigation -->\n<nav class="na ...