我有一些嵌套在我想要抓取的div标签中的文字。特别是来自MWE的地址(Hillsgrove, Missouri 13231-1123
)。这个div标签里面是我想忽略的其他标签。我想在第一个<br />
之后抓住当前div标签上的文本。至少我想在没有其他子节点文本的情况下取回字幕+地址,但理想情况下我只想要地址文本。
我正在使用R的rvest
包来完成此任务,但这似乎是一个更普遍的xpath问题。
library(xml2); library(rvest); library(dplyr)
minimal <- read_html(
"<!doctype html>
<meta charset=utf-8>
<title>blah</title>
<div class=\"span4\">
<a href='http://www.stuff.com'>
<strong>Sub Title</strong>
</a>
<br />
Hillsgrove, Missouri 13231-1123<br />
<span id=\"phone\">(5555) 555-5555</span><br />
<a target=\"_blank\" href='http://www.morestuff.com'>www.morestuff.com</a>
<br /><br />
</div>"
)
minimal %>%
html_nodes(xpath = '//div[@class="span4"]') %>%
html_text()
## [1] " \n \n Sub Title\n \n \n Hillsgrove, Missouri 13231-1123(5555) 555-5555www.morestuff.com\n "
## Hillsgrove, Missouri 13231-1123
## " \n \n Sub Title\n \n \n Hillsgrove, Missouri 13231-1123"
答案 0 :(得分:2)
如果您想要当前节点的文本节点,请使用text()
minimal %>%
html_nodes(xpath = '//div[@class="span4"]/text()') %>%
html_text()
# [1] " \n " "\n "
# [3] "\n Hillsgrove, Missouri 13231-1123" "\n "
你能看到它确实会返回换行符和空格,但这应该很容易被删除。