R中的xpathSApply函数仅在预期有多个时返回一个值

时间:2015-03-20 15:34:34

标签: html r xpath

我希望从这个网站上抓取文章链接:http://america.aljazeera.com/topics/topic/categories/us.html

我通过忽略分页来简化我的任务,我只对列出的前10篇文章感兴趣,目前有以下语法:

library(RCurl)
library(XML)
response <- getURL('http://america.aljazeera.com/topics/topic/categories/us.html')
html <- htmlParse(response)
xpath <- "//div[@class='story-holder']//a"
xpathSApply(html, xpath, xmlGetAttr, 'href')

我本来期望得到所有文章链接,图片中的链接以及每篇文章上的标签链接(这些将在稍后解析)。但是,我只获得了第一篇文章缩略图中嵌入的第一个链接。知道为什么它没有返回更多结果吗?

谢谢!

1 个答案:

答案 0 :(得分:1)

该页面有invalid HTML markup,这使XML解析器感到困惑。特别是它有一些自我关闭的div,似乎把一切都抛弃了。您可以尝试更具体的xpath表达式,以避免“坏”部分。如果您只想要文章链接,可能是:xpath <- "//div[@class='media-body']//h3/a"