2014-12-05 2 views
-1

У меня есть этот код:Команда «Спасение» в R?

library(rvest) 
url_list <- c("https://github.com/rails/rails/pull/100", 
       "https://github.com/rails/rails/pull/200", 
       "https://github.com/rails/rails/pull/300") 

mine <- function(url){ 
    url_content <- html(url) 
    url_mainnode <- html_node(url_content, "*") 
    url_mainnode_text <- html_text(url_mainnode) 
    url_mainnode_text <- gsub("\n", "", url_mainnode_text) # clean up the text 
    url_mainnode_text 
} 

messages <- lapply(url_list, mine) 

Однако, как я сделать список больше я склонен впадать в

Error in html.response(r, encoding = encoding) : 
    server error: (500) Internal Server Error 

Я знаю, в Ruby, я могу использовать rescue держать перебор списка, даже если некоторые попытки применения функции не выполняются. Есть ли что-то подобное в R?

ответ

2

Один из вариантов заключается в использовании try(). Для получения дополнительной информации см. here. Вот реализация:

library(rvest) 
url_list <- c("https://github.com/rails/rails/pull/100", 
       "https://github.com/rails/rails/pull/200", 
       "https://github.com/rails/rails/pull/300") 

mine <- function(url){ 
    try(url_content <- html(url)) 
    url_mainnode <- html_node(url_content, "*") 
    url_mainnode_text <- html_text(url_mainnode) 
    url_mainnode_text <- gsub("\n", "", url_mainnode_text) # clean up the text 
    url_mainnode_text 
} 

messages <- lapply(url_list, mine) 
+0

Ссылка только ответы обескураживают, и я бы сказал, особенно тогда, когда они просто упоминает о хорошо известном объекте. Если вы хотите заработать свою репутацию, вставьте полный обработанный пример. Я нахожу практику ответа на большинство ваших вопросов с коротким интервалом и без усилий, пытаясь найти граничную практику злоупотребления. –

+0

Я согласен с вашим первым моментом - я добавил пример. Я не согласен с вашим вторым моментом (отвечая на собственные вопросы). См. Здесь: http://stackoverflow.com/help/self-answer – histelheim

+1

Я думаю, что задавать вопросы, на которые вы либо знаете ответ, и не искали, и кажется, что это довольно тривиальный ответ, пересекает линию публикации фиктивных вопросов и сразу отправка ответов. –

Смежные вопросы