3

実際の世界の大統領の地図を作りたいです。

このために、ウィキペディアから各大統領の画像をスクレイピングしたいと思います。

最初のステップは、wiki ページからデータを取得することです: http://en.wikipedia.org/wiki/List_of_current_heads_of_state_and_government

テーブルに行スパンがあるため、国名と大統領ページの URL を取得できません。

今のところ、私のコードは以下のようになっていますが、行がまたがっているためうまくいきません..

    library(XML)    
    u = "http://en.wikipedia.org/wiki/List_of_current_heads_of_state_and_government"
    doc = htmlParse(u)
    tb = getNodeSet(doc, "//table")[[3]]

    stateNames <- readHTMLTable(tb)$State
    presidentUrls <- xpathSApply(tb, "//table/tr/td[2]/a[2]/@href")

どんなアイデアでも大歓迎!

マット

4

1 に答える 1

0

表に異質性がある場合、1 行のコードで問題を処理できるとは思えません。あなたの場合、あるものtdは持っていますcolspan=2が、他のものは持っていません。したがって、次のようなフィルターを使用して、それらを個別に選択して処理できます。

    nations1 <- xpathSApply(tb, "//table/tr[td[@colspan='2']]/td[1]/a/text()")
    nations2 <- xpathSApply(tb, "//table/tr[count(td)=3]/td[1]/a/text()")

表内の他のタイプの条件を満たす必要がある場合は、XPath にはさらに多くの条件があることに注意してください。

于 2013-04-19T18:18:33.767 に答える