Skip to content

[R-es] (sin asunto)

10 messages · Juan Abasolo, Javier Marcuzzi, Ruben Tobalina Ramirez +1 more

#
Hola, buenas tardes,

Estoy usando *rvest*  para hacer webscraping y me surge una duda con el
siguiente codigo:

*x <- '<h2>Alerta Cobra <span class="title">(Alarm für Cobra 11 - Die
Autobahnpolizei)</span>\n</h2>'*
*x %>% read_html() %>% html_nodes(xpath = "//h2")*

Me gustaria quedarme con lo que contiene el tag *h2*, pero quitando *span*.
En este ejemplo seria solo *Alerta Cobra. *He probado usando los
típicos operadores como *!* o *:not(span)*, pero no ha resultado bien.

Una orientación de como hacerlo me vendría bien, muchas gracias de antemano.
#
Hola, buenas tardes,

Estoy usando *rvest*  para hacer webscraping y me surge una duda con el
siguiente código:

*x <- '<h2>Alerta Cobra <span class="title">(Alarm für Cobra 11 - Die
Autobahnpolizei)</span>\n</h2>'*
*x %>% read_html() %>% html_nodes(xpath = "//h2")*

Me gustaria quedarme con lo que contiene el tag *h2*, pero quitando *span*.
En este ejemplo seria solo *Alerta Cobra. *He probado usando los
típicos operadores como *!* o *:not(span)*, pero no ha resultado bien.

Una orientación de como hacerlo me vendría bien, muchas gracias de antemano.

PD: perdón que en els anterior mensaje se me olvidó poner un asunto.
#
Hola, Rubén;
Disculpá si es algo obvio. Pero por si no lo fuera, te comento que el
plugin SelectorGadget para los derivados de Chromium (Brave, Chrome,
Opera....) te sirve para identificar cuál es la etiqueta específica para
seleccionar los diferentes elementos de una página.
Por lo menos yo, todo lo que pude resolver con Rvest, lo conseguí resolver
por esa vía (te tocaría ver algún tutorial).

Suerte
Juan

Hau idatzi du Ruben Tobalina Ramirez (lagrimaescrita en gmail.com)
erabiltzaileak (2025 uzt. 9(a), az. (16:56)):

  
    
#
Buenas tardes Rubén

Lo que usted desea no se puede, pero hay una solución. Primero, si selecciona el h2 lo que está dentro de esta etiqueta se selecciona. Segundo, lo que está mal es la selección, sin embargo, puede solucionar esta buscando y borrando el código <span clas?. , supuestamente este se podría repetir en todos los datos, por lo cuál el localizarlo y eliminarlo sería una solución.

Por lo cuál al restallado de rvest tendría que procesarlo con otro script en R que limpie el código repetido en todos los registros.

¿Esa solución le es útil?

Javier Marcuzzi
#
Buenas noches Javier,

Gracias por la respuesta, yo también lo había pensado. Creo que no me vale
porque el span dentro del h2 no se repite en todos los casos.

Rubén.

El dc., 9 de jul. 2025, 22:55, Javier Marcuzzi <
javier.ruben.marcuzzi en gmail.com> va escriure:

  
  
#
Buenas noches Juan,

Gracias por la respuesta. Mañana miro a ver si me sirve esa herramienta.

Un saludo

Rubén.

El dc., 9 de jul. 2025, 19:08, Juan Abasolo <juan.abasolo en ehu.eus> va
escriure:

  
  
#
Estimado Rubén

No importa, el código es algo más largo pero no tanto, sería algo como :

Si existe lo siguiente
	Borrar esto
So no existe
	No borrar nada

Para mi gusto no iría por expresiones regulares, por si las dudas en algún caso borro de más, hay que saber dominarlas, pero también son una alternativa.

Aunque si yo quiero, para el webscraping, puedo crear código para enloquecer a cualquier análisis, por lo cuál, es posible que lo que usted analiza tenga algo para ?complicarle la vida?.

Javier Marcuzzi

  
  
#
Buenos días.

Muchas gracias de nuevo por el interés Javier. Está mañana tuve la idea
feliz y lo hice tal como dices, pero luego tuve una nueva idea feliz y me
di cuenta que el texto que está dentro del *span* está siempre dentro de
unos paréntesis Así que hice un sencillo gsub() borrando todo lo que hay
dentro de los susodichos paréntesis y listo.

A veces es más sencillo de lo que parece. :D

muchas gracias por todo. un saludo

El jue, 10 jul 2025 a las 10:54, Javier Marcuzzi (<
javier.ruben.marcuzzi en gmail.com>) escribió:

  
    
#
Hola,

¿Qué tal?
No sé si ya está resuelto el problema...

Una alternativa puede ser esta.

#-----------------
Autobahnpolizei)</span></h2>'
+   html_node(xpath = "//h2/text()") %>%
+   html_text(trim = TRUE)
[1] "Alerta Cobra"
#-----------------

Gracias,
Carlos Ortega
www.qualityexcellence.es

El jue, 10 jul 2025 a las 11:14, Ruben Tobalina Ramirez (<
lagrimaescrita en gmail.com>) escribió:

  
    
#
uau, esto si es magia. Ese uso del text() no lo conocía, pensaba que cogia
también el texto del span.

Muchas gracias, un saludo

El jue, 10 jul 2025 a las 11:24, Carlos Ortega (<cof en qualityexcellence.es>)
escribió: