【问题标题】:Rvest: getting node text and not its childen's textRvest:获取节点文本而不是其子文本
【发布时间】:2016-09-15 08:22:49
【问题描述】:

方法html_text()(来自R Package rvest)连接节点的文本和它的所有子节点。我想只提取父亲的文字

对于以下示例,html_text() 表示 HELLO GOODBYE

我只想得到 GOODBYE。我怎样才能得到它?

<div class="joke">
  <div class="div_inside">
    <div class="title_inside">
      <a class="link" href="sompage.htm">HELLO</a>
    </div>
  </div>
  GOODBYE
</div>

【问题讨论】:

  • 问题 + 最少的代码 + 最少的数据是 SO 问题的常用习语
  • read_html('your_html_script') %&gt;% html_nodes(xpath = '//div[@class="joke"]/node()[not(self::div)]') %&gt;% html_text()?
  • 效果很好,@Abdou。我期望从 rvest 包中得到一些东西,但是 xpath 的灵活性就足够了。非常感谢!
  • 不客气!也许还有另一种解决方案。我将添加这个作为答案。

标签: r web-scraping rvest


【解决方案1】:

尝试使用 xpath 使用 class "joke" 获取主要的 div 标签,而不使用其子标签:

library(rvest)

read_html('your_html_script') %>%
    html_nodes(xpath = '//div[@class="joke"]/node()[not(self::div)]') %>% 
    html_text()

谢谢!

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2015-02-20
    • 2011-08-29
    • 1970-01-01
    • 2017-12-27
    • 2020-06-21
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多