【发布时间】:2018-07-15 23:11:59
【问题描述】:
我正在尝试通过阅读 XPath 代码来抓取网站。 当我进入开发者部分时,我看到了这些行:
<span class="js-bestRate-show" data-crid="11232895" data-id="928723" data-abc="0602524361510" data-referecenceta="44205406" data-catalog="1">
我想抓取 data-abc 的所有值。 假设网站上的每个元素都是一部电影,所以我想为页面的每个电影抓取所有 data-abc 元素。
我想使用带有 R 的 Rvest 包来做到这一点。 以下是两种不同的尝试,但均未奏效...
website %>% html_nodes("js-bestRate-show") %>% html_text()
website %>%
html_nodes(xpath = "js-bestRate-show") %>%
html_nodes(xpath = "//div") %>%
html_nodes(xpath = "//span") %>%
html_nodes(xpath = "//data-abc")
有人知道 html_nodes 和 Rvest 是如何工作的吗?
【问题讨论】:
-
除非你做一些复杂的事情,CSS选择器要简单得多,例如
'<span class="js-bestRate-show" data-crid="11232895" data-id="928723" data-abc="0602524361510" data-referecenceta="44205406" data-catalog="1">' %>% read_html() %>% html_nodes('span') %>% html_attr('data-abc')请注意,您还需要html_attr来获取属性。html_text获取标签包含的文本,例如<p>some text</p>