如何在 <tag> 之外使用 R 中的 rvest 包提取文本

How to extract text outside the <tag> using rvest package in R

谁能帮我提取 From 之后的测试,我想提取发件人姓名。它位于 em 标签之外。我正在使用 python BeautifulSoup 包。

这里是 link 网页:http://seclists.org/fulldisclosure/2016/Jan/0

我能够成功提取电子邮件标题,因为它在标签中。 html 页面中没有其他 div 或 类。

这是页面的 html 代码:

这是我试过的方法

url <- "http://seclists.org/fulldisclosure/2016/Jan/0"
doc <- htmlTreeParse(url, useInternalNodes = T, trim = T,      addAttributeNamespaces = T, encoding = "utf-8")

pre_text1 <- unlist(xpathSApply(doc, "//em",xmlValue))

你可以用下面的方法提取它xpath

require(rvest)
doc <- read_html("http://seclists.org/fulldisclosure/2016/Jan/0")
doc %>% 
  html_node(xpath = "/html/body/table[2]//tr[1]/td[2]/table//tr/td/text()[6]") %>% 
  html_text

结果:: Uğur Cihan KOÇ <u.cihan.koc () gmail com>

我是怎么到那里的?
从 Chrome 开始 -> 右键单击​​文本元素 -> 复制 -> 复制 XPath。 不知何故没有"copy selector"。所以我猜你不能通过纯 css-selector.

访问这个元素

此 xpath 如下所示:

/html/body/table[2]/tbody/tr[1]/td[2]/table/tbody/tr/td/text()[1]

Rvest 不 return 任何具有此 xpath 的元素。 tbody 部分无法识别(不知道为什么)。将其删除并删除尾随 [1]

/html/body/table[2]//tr[1]/td[2]/table//tr/td/text()

给你你需要的结果。然后你可以 select xpath 中的第 6 个元素,方法是像我一样添加 [6] 或在 R.

中过滤