Хотя read_html_live() возвращает набор узлов, который, по-видимому, содержит все необходимые «биты», я не могу использовать для него html_elements() (хотя тот же веб-сайт и тот же xpath прекрасно работают с использованием более традиционного read_html). .
У меня есть опыт использования различных других библиотек для веб-скрапинга, но я относительно новичок в rvest, поэтому вполне возможно, что я упускаю что-то очевидное.
Минимальный рабочий пример ниже:
library(rvest)
x <- read_html("https://www.ngaarawhetu.org/news/")
y <- read_html_live("https://www.ngaarawhetu.org/news/")
x_ele <- html_elements(x, xpath = "//link[@rel = 'alternate']") # Just to demonstrate - doesn't seem to work with anything
y_ele <- html_elements(y, xpath = "//link[@rel = 'alternate']")
print(x_ele)
print(y_ele)
Версия «x» с использованием read_html() возвращает ожидаемые значения:
{xml_nodeset (5)}
[1] <link rel = "alternate" type = "application/rss+xml" title = "Ngā Ara Whetū » Feed" href = "https://www.ngaarawhetu.org/feed/ ...
[2] <link rel = "alternate" type = "application/rss+xml" title = "Ngā Ara Whetū » Comments Feed" href = "https://www.ngaarawhetu. ...
[3] <link rel = "alternate" type = "application/json" href = "https://www.ngaarawhetu.org/wp-json/wp/v2/pages/113">\n
[4] <link rel = "alternate" type = "application/json+oembed" href = "https://www.ngaarawhetu.org/wp-json/oembed/1.0/embed?url=h ...
[5] <link rel = "alternate" type = "text/xml+oembed" href = "https://www.ngaarawhetu.org/wp-json/oembed/1.0/embed?url=https%3A% ...
В то время как версия «y» с использованием read_html_live() не возвращает результатов:
{xml_nodeset (0)}
Я ожидаю, что для этого конкретного веб-сайта html_elements() вернет одинаковые результаты для обоих классов объектов (xml_document/xml_node и LiveHTML/R6).