Problema con selenium

Hola buenas tardes. Estoy intentando hacer scraping de un chat con selenium, necesito sacar todos los mensajes del chat y guardarlos en un archivo (es muy importante). El tema es que no se si con selenium es la mejor opción? Si me pueden decir otra forma más coherente…

Se poco de html pero supongo que seleccionando todos los elementos con la misma clase (es decir los mensajes) con css.selector podría guardarlos a todos. Sin importar la fecha. Pero hasta ahora no me salió y no creo que sea así de sencillo hablando de html.

Saludos y gracias.

Hay muchas formas de hacerlo, como por ejemplo con scrappy, pero la mejor forma depende mucho de como esté hecha la página de chat, por ejemplo si es html solo prefiero scrappy, si es con mucho javascript prefiero selenium u otra parecida que no me acuerdo como se llama (hace mucho que no hago scrapping). Saludos, Javier.

1 me gusta

Hola Javier voy a intentarlo con scrappy muchas gracias. saludos

Buenas, podes usar selenium y “selectq” una toolcita q hice para parsear
html usando expresiones similares a jQuery o D3.

Lo unico es q admito es que tiene una documentacion algo poco
organizada.

Lo bueno (aunque es sesgada mi opinion), es q selectq (sQ for short) esta
pensada para hacer el parsing lo mas intuitivo posible (sin codear
mucho, es especial sin for-loops!)

Ejemplos:

Selecciona todos los elementos de tipo “div” q tenga como “class” el
valor “msj”

sQ.select(‘div’, class_=‘msj’)

Este es similar al anterior pero no requiere que “class” sea exactamente
el valor “msj” (esto te seleccionaria

por
ejemplo)

sQ.select(‘div’).that(attr(‘class’).has_word(‘msg’))

En fin, incluso si no vas por selenium+selectq, podes usar selectq con
scrappy aunque en ese caso usarias selectq solo para armar los xpaths.

Ahi dependera de tu pagina web: si es simple, selectq tal vez es un
overkill pero si es un poco mas compleja, tal vez usar el xpath generado
te sirva y te ahorre tiempo de debugging.

Cheatsheet de xpath:

Perdon por el mail marketinero :slight_smile: cualquier cosa preguntame.

Saludos!
Martin