【发布时间】:2016-08-09 05:51:05
【问题描述】:
我正在使用 R 中的 xml2 包从网页中抓取数据。我要抓取的文本由如下所示的标签括起来:
<td>
<a href="javascript:WebForm_DoPostBackWithOptions(new
WebForm_PostBackOptions("ctl00$CenterContent$ctl01",
"", true, "", "", false,
true))">Species A
</a></td>
<td>
<a href="javascript:WebForm_DoPostBackWithOptions(new
WebForm_PostBackOptions("ctl00$CenterContent$ctl02",
"", true, "", "", false,
true))">Species B </a></td>
<td><a href="javascript:WebForm_DoPostBackWithOptions(new
WebForm_PostBackOptions("ctl00$CenterContent$ctl03",
"", true, "", "", false,
true))">Sepcies C </a></td>
<td>
<a href="javascript:WebForm_DoPostBackWithOptions(new
WebForm_PostBackOptions("ctl00$CenterContent$ctl04",
"", true, "", "", false,
true))">Species D</a></td>
<td>
<a href="javascript:WebForm_DoPostBackWithOptions(new
WebForm_PostBackOptions("ctl00$CenterContent$ctl05",
"", true, "", "", false,
true))">Species E </a></td>
我尝试在 R 中使用以下代码行:
library(xml2)
page = read_html(website)
nodes = html_nodes(page, xpath='//td/a[@href*="javascript"]')
使用上面的代码,我只想提取具有包含子字符串“javascript”的 href 属性的所有节点,但我收到以下错误消息:
xmlXPathEval: evaluation failed
Warning message:
In xpath_search(x$node, x$doc, xpath = xpath, nsMap = ns, num_results = Inf) :
Invalid expression [1207]
如果有人有任何建议,我将不胜感激。
感谢大家的时间。
干杯。
【问题讨论】:
-
您是否使用
xpath?否则,您可以这样做:jscripts <- page %>% rvest::html_nodes('td') %>% rvest::html_nodes('a') %>% rvest::html_attr('href') %>% .[grepl('javascript', .)]。您需要为管道运算符使用magrittr包。