私は分析の有名人/著名な死者に関するデータを抽出しようとしています。ウィキペディアは、著しい死の日々に関するhtmlパスに非常に規則的な構造を持っています。それは次のようになります。たとえばルーピングでWikipediaのデータをR
https://en.wikipedia.org/wiki/Deaths_in_"MONTH"_"YEAR"
、このリンクは、私は「」#mwを私はする必要がリストのCSSの場所に位置している月の顕著な死亡、2014
https://en.wikipedia.org/wiki/Deaths_in_March_2014
につながります-content-text h3 + ul li "を探し、特定のリンクのためにそれを抜き出しました。今、私は選択した月と何年もの間、ループを作成しようとしています。 2015年にテストするときにエラーが発生する。
library(rvest)
data = data.frame()
mlist = c("January","February","March","April","May","June","July","August",
"September","October","November","December")
for (y in 2015:2015){
for (m in 1:12){
site = read_html(paste("https://en.wikipedia.org/wiki/Deaths_in_",mlist[m],
"_",y,collapse=""))
fnames = html_nodes(site,"#mw-content-text h3+ ul li")
text = html_text(fnames)
data = rbind(data,text,stringsAsFactors=FALSE)
}
}
それは明確に、このビットに関連していますので、エラーが返されません
data = rbind(data,text,stringsAsFactors=FALSE)
:
私は行をコメントアウトするとき。私は他のコメントのために私の全体のコードを投稿しています。ここでの目標は何年ものループを繰り返し、その後数年間と数ヶ月にわたる流通に焦点を当てることです。このためには、年齢、月、および年を守るだけです。
ありがとうございました!
編集:申し訳ありませんが、技術的には警告でエラーではありません。私はそれらの50以上を取得し、私は "データ"を見てみると、それは巨大な混乱です。
特定のURLのループとしてではなく、このコードを実行すると、正常に動作し、読み取り可能な出力が返されます。ここで
site = read_html("https://en.wikipedia.org/wiki/Deaths_in_January_2015")
fnames = html_nodes(site,"#mw-content-text h3+ ul li")
text = html_text(fnames)
は、そのデータ・セットからの行のカップルです:
text[1:5]
[1] "Barbara Atkinson, 88, British actress (Z-Cars).[1]"
[2] "Staryl C. Austin, 94, American air force brigadier general.[2]"
[3] "Ulrich Beck, 70, German sociologist, heart attack.[3]"
[4] "Fiona Cumming, 77, British television director (Doctor Who).[4]"
[5] "Eric Cunningham, 65, Canadian politician, Ontario MPP for Wentworth North (1975–1984).[5]"
エラーメッセージは表示されませんでした。どのようなエラーがありましたか?どのような出力データセットはどのように見えますか? –
あなたのエラーを容易に再現できるように、使用しているパッケージの名前を投稿してください。 – abhiieor
私はこのテンプレートと私が使っているライブラリのrvestを使って成功したスクレイプの例を含めるように投稿を編集しました。 – user137698