Я использую пакет xml2 в R для очистки данных с веб-страницы. Текст, который я хочу очистить, заключен в теги, показанные ниже:
<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"]')
С помощью приведенного выше кода я просто хочу извлечь все узлы, у которых есть атрибут href, содержащий подстроку «javascript», но я получаю сообщение об ошибке ниже:
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
для оператора канала. - person Abdou   schedule 09.08.2016