私は、清掃されたxpathを数千回の繰り返しの間にthe Vermont Secretaty of Stateから削り取るための効率的なソリューションを探しています。 、大きなデータ(〜90k)XPathの掻き取り
'//*[@id="content_wrapper"]/div[2]/div/h1'
私は約90000ページをループループを実行するために、クリーンで効率的な方法を見つけるのに苦労してるタイトルをつかみ、そして格納し:これは私がこすりしようとしているタイトルのXPathでありますベクトルで。最終目標は、ページの値とタイトル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()関数ではなく単なるテキストより、括弧で文字列を返すので、スクリプトは動作しません。このスクリプトは1週間ほど私を迷惑にしていたので、どんな解決策もありがたいです。
あなたが投稿したURLを確認してください、「http://vtelectionarchive.sec.state.vt.us/elections/ view /%s "は、' 400 Bad request'を返します。私は正しいURLがhttp://vtelectionarchive.sec.state.vt.us/elections/search/year_from:1789/year_to:2016 – Ashish
であると考えています。 '%s'は数字のb/cに置き換えられています'sprintf()'呼び出しです。 OPが何をしようとしているのかはまだ分かりません。 – hrbrmstr