readHTMLTables - 检索国家名称和与政府首脑有关的文章的网址

时间:2013-04-18 09:23:54

标签: r web-scraping

我想制作现实世界总统的地图。

为此,我想从维基百科中删除每位总统的照片。

第一步是从维基页面获取数据: 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")

欢迎任何想法!

1 个答案:

答案 0 :(得分: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()") 。因此,可以使用以下过滤器单独选择和处理它们:

{{1}}

如果您在表中遇到其他类型的条件,请记住XPath有更多。