簡體   English   中英

使用 webscraping 檢查 r 中的循環時出錯

[英]error checking a loop in r with webscraping

我有一個網頁列表,我想檢查網站的某個部分是否存在。

library(rvest)

links
[1] "http://www.stevel.com/?xid=2679644&dd=2015-01-22"
[2] "http://www.stevel.com/?xid=2679644&dd=2015-01-21"
[3] "http://www.stevel.com/?xid=2679644&dd=2015-01-20"
[4] "http://www.stevel.com/?xid=2679644&dd=2015-01-19"
[5] "http://www.stevel.com/?xid=2679644&dd=2015-01-18"

我已經移動了很多代碼,但似乎無法使任何工作正常工作。

newlist <- c()
for (i in 1:length(links)) {
  separate <- html(links[i])
  try(separate %>%
        html_nodes('div span') %>%
        .[[13]], silent=TRUE)
  newlist <- rbind(links[i],newlist)
}

所需的輸出將是有效的鏈接(不產生錯誤)。

[1] "http://www.stevel.com/?xid=2679644&dd=2015-01-22"
[2] "http://www.stevel.com/?xid=2679644&dd=2015-01-20"

所以,基本上我有一個鏈接列表。 我在 R 中合並 'try' 時遇到問題。我想遍歷鏈接並嘗試每個鏈接以查看它的特定方面是否存在 - 這是我放入 try 子句中的部分。 如果存在,則將該網頁放在“新列表”中。 如果它不存在,則將其排除。

任何幫助我指明正確方向的幫助將不勝感激。

另一種方法是使用 tryCatch :

links <- c("http://www.stevel.com/?xid=2679644&dd=2015-01-22",
           "http://www.stevel.com/?xid=2679644&dd=2015-01-21",
           "http://www.stevel.com/?xid=2679644&dd=2015-01-20",
           "http://www.stevel.com/?xid=2679644&dd=2015-01-19",
           "http://www.stevel.com/?xid=2679644&dd=2015-01-18")

newlist <- c()
for(i in 1 : length(links)) 
{
  print(i)
  separate <- tryCatch(html(links[i]), error = function(e) NA)
  tryCatch((separate %>% html_nodes('div span') 
                     %>% .[[13]]), error = function(e) NA)
  
  newlist <- rbind(links[i], newlist)
}

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM