3

我想制作一张真实世界总统的地图。

为此,我想从维基百科中抓取每位总统的图像。

第一步是从 wiki 页面获取数据: http ://en.wikipedia.org/wiki/List_of_current_heads_of_state_and_government

我无法获取国家/地区名称和总统页面网址,因为该表具有行跨度。

目前,我的代码如下所示,但由于行跨越,所以不行。

    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

如果表中存在异质性,我认为我们不能通过一行代码来处理这个问题。在您的情况下,有些tdcolspan=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 回答