我正在尋找一些有效的解決方案,以從the Vermont Secretaty of State中刮取清理的xpath數千次迭代。這是冠軍,我試圖刮中的XPath:大數據(〜90k)XPath刮
'//*[@id="content_wrapper"]/div[2]/div/h1'
我掙扎在尋找清潔高效的方式來運行一個循環,經過約90000頁環,抓住標題,並將其存儲在向量中。最終目標是導出包含頁面值和標題xpath的小數據框。我將使用這個數據框來爲數據庫中的未來搜索建立索引。
這是我到目前爲止有:
library(XML)
library(rvest)
election_value <- 1:90000
title <- NA
for (i in 1:90000) {
url <- sprintf("http://vtelectionarchive.sec.state.vt.us/elections/view/%s", election_value[i])
if (is.null(tryCatch({read_html(url) %>% html_nodes(xpath='//*[@id="content_wrapper"]/div[2]/div/h1') %>% html_text()}, error=function(e){}))) {
title[i] <- NA } else {
title[i] <- read_html(url) %>% html_nodes(xpath='//*[@id="content_wrapper"]/div[2]/div/h1')}
}
vermont_titles <- data.frame(election_value, title)
write.csv(vermont_titles, 'vermont_titles.csv')
不幸的是,該腳本無法正常工作,因爲html_nodes()函數返回括號中的字符串,而不僅僅是文字。任何解決方案,將不勝感激,因爲這個腳本一直困擾我一個星期左右。
請檢查您發佈的網址,「http://vtelectionarchive.sec.state.vt.us/elections/查看/%s「,產生一個'400錯誤的請求'。我認爲,正確的網址是http://vtelectionarchive.sec.state.vt.us/elections/search/year_from:1789/year_to:2016 – Ashish
'%s'正在替代它所在的數字b/c一個'sprintf()'調用。目前還不清楚OP在嘗試做什麼。 – hrbrmstr