<a href="?p=978" title="last page" class="last">978</a>
我正在尝试定位上面的title
属性。我知道,如果html标记包含类似id="last_page"
的内容,我可以使用以下代码:
link %>%
html_nodes("#last_page") %>%
html_text()
我不了解的是如何定位任意属性,或者如何定位包含空格的id
或class
属性。
答案 0 :(得分:3)
对于id
和class
以外的属性,您可以使用类似[title='last page']
的名称。以下返回"978"
:
library(rvest)
library(dplyr)
node <- read_html('<a href="?p=978" title="last page" class="last">978</a><a href="?p=blah" title="last page" class="last">blah</a>')
node %>%
html_node("[title='last page']") %>%
html_text()
# [1] "978"
我不确定,但是我认为带空格的id
属性是不可以。不过,您仍然可以使用与上述相同的策略来访问它:
node <- read_html('<a href="?p=978" id="last page" class="last">978</a><a href="?p=blah" title="last page" class="last">blah</a>')
node %>%
html_node("[id='last page']") %>%
html_text()
# [1] "978"
像class
这样的class="last page"
服饰是有效的,但实际上包含两个类别last
和page
,而不是一个last page
。您可以将.
与其中之一或两者同时使用来访问它:
node %>%
html_node(".last") %>%
html_text()
# [1] "978"
node %>%
html_node(".page") %>%
html_text()
# [1] "978"
node %>%
html_node(".last.page") %>%
html_text()
# [1] "978"
答案 1 :(得分:1)
我们可以使用xpath
选择id
library(dplyr)
library(rvest)
link %>%
html_nodes(xpath = '//*[@id="last page"]') %>%
html_text()