【发布时间】:2017-11-12 10:35:35
【问题描述】:
此任务的目标是在 IR 的搜索结果页面中提取关于论文标题的“href”,并将它们作为数据框。 这个结果页面的结构不是很好:论文标题、问题信息、作者和下载按钮在同一个字段中,只用“span”(在“title”、“issue”和“authors”之间)和“sup”分隔”(在“作者”内)。
results<-"http://ir.las.ac.cn/handle/12502/8473/browse?type=dateissued"
library(rvest)
resultsource <- read_html(results)
itemLine <- html_node(resultsource, xpath ='//tr[@class="itemLine"]')
# gether labels and values of item metadata in miscTable2
titleLine <- html_nodes(itemLine, xpath ='//span/a[@href][@target]')
titlehref <- xml_attrs(titleLine, "href")
resultstxt <- html_text(titleLine, trim = TRUE)
上面的程序运行没有错误,但是“titleLine”有很多冗余,而“titlehref”只有一个比赛作为'类 “itemLine”,但根本没有 URL。 我的问题是:
- 如何准确定位论文标题的href?我用一个 第二层“html_nodes”保存所有目标href。然而, “sup”标签下的“href”仍在“titleLine”中,以及 “目标”也是。我们可以使用“目标”属性来定位正确吗 “href”但不让它们出现在“titleLine”中?
- 如何定位具有复杂“值”的属性?在节目中
上面,我只使用“href”。我之前尝试过使用“xpath 风格”
但没有帮助。我想使用名称空间来识别论文的 URL,
但我看到也许 ns 只能从“xmlns”属性中提取,并且
无法手动分配(如
titlehref <- xml_attrs(titleLine, "href", ns=”http://ir.las.ac.cn/handle”))
如何拟合这个IR的结构才能得到正确的结果?非常感谢。
【问题讨论】: