如何使用rvest在网页中删除定界内容?

时间:2016-03-02 21:53:22

标签: html r web-scraping text-mining rvest

美好的一天,StackOverflowers。

我有这样的内容:

A <div> with a <p> with its content separated by <br>

编辑:这是文本形式:

<p><b>Tu dinero /  Acciones que acaban con tu quincena</b><br><br>EVITA SOBREENDEUDARTE<br><br>POR SONIA SOTO<br><br>El día de pago llegó, pero tú simplemente no pareces emocionarte como todos los mortales, no sólo de México, sino del mundo. Si esto te pasa, sólo puede existir una razón y es que has entrado en un círculo vicioso en el cual trabajas para pagar deudas, y pides más préstamos para sobrevivir la siguiente quincena, porque esta tampoco te alcanzará.<br><br>Si ya intentaste reducir al máximo tus gastos innecesarios, pero ni así la libras, sería Interesante que pusieras atención en tus hábitos, estamos seguros que ahí puedes encontrar varios porqués a tu situación. Piggo, la plataforma de inversión y ahorro, ha detectado algunos que pueden ser la causa de que el dinero se te vaya de las manos, chécalos y modifica alguna de estas conductas.<br><br>30 POR CIENTO de tus ingresos es lo máximo que puedes comprometerán deudas, recomienda Condusef</p>

我可以使用以下选项来选择此标记:

html_node(read_html(x), "div#readMoreText > p")

但是,如果我运行html_text(),我得到的是整个文本,行之间没有任何分隔,如下所示:

[[1]]
[1] "Tu dinero /  Acciones que acaban con tu quincenaEVITASOBREENDEUDARTEPOR SONIA SOTOEl día de pago llegó, pero tú simplemente no pareces emocionarte como todos los mortales, no sólo de México, sino del mundo. Si esto te pasa, sólo puede existir una razón y es que has entrado en un círculo vicioso en el cual trabajas para pagar deudas, y pides más préstamos para sobrevivir la siguiente quincena, porque esta tampoco te alcanzará.Si ya intentaste reducir al máximo tus gastos innecesarios, pero ni así la libras, sería Interesante que pusieras atención en tus hábitos, estamos seguros que ahí puedes encontrar varios porqués a tu situación. Piggo, la plataforma de inversión y ahorro, ha detectado algunos que pueden ser la causa de que el dinero se te vaya de las manos, chécalos y modifica alguna de estas conductas.30 POR CIENTO de tus ingresos es lo máximo que puedes comprometerán deudas, recomienda Condusef"

有没有办法让rvest提取这段文字并让它用空格替换标签,而不是仅删除它们并使文字难以理解?

感谢。

学家

3 个答案:

答案 0 :(得分:3)

这是&#39;管道&#39;复制,我觉得更直观:

library(rvest)
read_html("Somewebpage.html") %>%
 html_nodes(., "div#readMoreText > p") %>%
 gsub(pattern = '<.*?>', replacement = "|"., )

通过适当的管道(|)分隔符拆分节点将在您提取的内容很多时帮助您

答案 1 :(得分:2)

为了回答我自己的问题,我设法用以下方法做到了这一点:

gsub(pattern = '<.*?>', replacement = ' ', html_nodes(read_html(x), "div#readMoreText > p"))

思想html_nodes()只返回指针,但事实证明,它可以返回gsub或其他函数的文本进行处理。

答案 2 :(得分:0)

或者您可以使用 html_text2() 对文本进行类似 html 的“渲染”,并将所有 <br> 转换为 \n

library(rvest)
read_html("Somewebpage.html") %>%
 html_nodes("div#readMoreText > p") %>%
 html_text2()