[pyar] Scrapear sitios con distinta estructura HTML

Juan Manuel jmdedio en gmail.com
Mie Jul 3 10:16:14 -03 2019


Requests y xpath es una buena alternativa.  Podés hacer subclases para cada
sitio con sus respectivos métodos y luego una clase manejadora que
instancie a cada una.  De esa manera todo estará en un sólo fichero y si
tenés que agregar o quitar sitios sólo debés crear o comentar subclases y
configurar el manejador.

El mié., 3 jul. 2019 a las 9:59, Augusto (<adtononi en gmail.com>) escribió:

> Muchas gracias por las respuestas!
>
> Manuel: si, tuve incluso el inconveniente ese de encontrar incongruencias
> dentro de un mismo sitio. Lo cual es bastante molesto.
>
> Juan Manuel: estoy usando requests y xpath, me resultó más fácil a la hora
> de filtrar que con Beautifulsoup (aunque a este no lo use en profundidad)
>
> Juan Carriza: le voy a dar una leída a los links y después te comento si
> pude avanzar en algo, gracias!
>
>
>
> El mié., 3 jul. 2019 9:27, Juan Carizza <juan.carizza en gmail.com> escribió:
>
>> Hola Augusto,
>>
>> Lo más rápido es crear una clase `Base` donde definas los métodos más
>> comunes que necesitas por ejemplo:
>> http://linkode.org/#FdLRIKW93VCQfAnLH84to1 y luego creas una sub-clase
>> con los atributos que necesites.
>>
>> Si vas por el lado de hacer algo generico deberias intentar hacer un
>> analisis de la estructura HTML (mas que el texto) para extraer la noticia.
>> Un ejemplo de esto es el codigo que usa el "Modo Lectura" de firefox
>> https://github.com/mozilla/readability
>>
>> El mié., 3 de jul. de 2019 a la(s) 09:02, Juan Manuel (jmdedio en gmail.com)
>> escribió:
>>
>>> ¿Qué estás usando para scrapear?
>>>
>>>
>>> El mié., 3 jul. 2019 a las 8:37, Gustavo Campanelli (<gedece en gmail.com>)
>>> escribió:
>>>
>>>>
>>>> On Wed, Jul 3, 2019 at 2:45 AM Manuel <naranjo.manuel en gmail.com> wrote:
>>>>
>>>>> Podrías emular el bot de Google con el user agent, pero así y todo
>>>>> casa sitio es distinto y vos querés acceder a contenido muy específico.
>>>>>
>>>>> Capaz que podes encontrar que varios sitios caen en el mismo patrón,
>>>>> por ejemplo vas a tener un grupo que use h1, h2 y div, pero vas a tener
>>>>> otros usando bootstrap.
>>>>>
>>>>> Incluso dentro del mismo sitio podes encontrar que hay incongruencias
>>>>> si es uno grande con muchos equipos de desarrollo.
>>>>>
>>>>> Si tenés suerte alguno usa AJAX para cargar los datos y te hace las
>>>>> cosas más sencillas, pero no hay un standard, por algo Google y los sitios
>>>>> de búsqueda tienen varios equipos dedicados a sus bots de scrapeo
>>>>>
>>>>> El mié., 3 de julio de 2019 05:29, Augusto <adtononi en gmail.com>
>>>>> escribió:
>>>>>
>>>>>> Buenas Victor,
>>>>>>
>>>>>> Si, habia pensado en aplicar NLP, usar expresiones regulares, etc.
>>>>>> Todo con el fin de filtrar y matchear lo que estoy buscando. Pero mas alla
>>>>>> de que es dificil, no hay una manera eficiente de controlar los resultados,
>>>>>> como indican en los comentarios.
>>>>>>
>>>>>> Gracias!
>>>>>>
>>>>>> El mar., 2 jul. 2019 a las 23:47, Victor Andres Martinez Hernandez (<
>>>>>> victorliferock en gmail.com>) escribió:
>>>>>>
>>>>>>> Hola Augusto,
>>>>>>>
>>>>>>> Yo siempre tengo este tipo de problemas y la verdad hasta ahora lo
>>>>>>> que siempre hago es crear un scraper por cada sitio, nunca había buscado la
>>>>>>> manera de hacerlo masivo. Veo otra posibilidad pero nunca la he hecho, te
>>>>>>> dejo link:
>>>>>>>
>>>>>>>
>>>>>>> https://stackoverflow.com/questions/43712602/web-crawling-for-multiple-websites-with-different-structures
>>>>>>>
>>>>>>>
>>>>>>>
>>>>>>> Saludos!
>>>>>>>
>>>>>>> El mar., 2 de jul. de 2019 a la(s) 21:24, Augusto (
>>>>>>> adtononi en gmail.com) escribió:
>>>>>>>
>>>>>>>> Buenas grupo, basicamente lo que dice el asunto.
>>>>>>>>
>>>>>>>> Estoy scrapeando sitios de noticias y de cada noticia obtengo
>>>>>>>> titulo, fecha y contenido. Todo esto lo capto con XPATH.
>>>>>>>> El problema es que cada sitio tiene estructuras diferentes por lo
>>>>>>>> cual tengo que retocar el script para cada sitio, y la idea es tener un
>>>>>>>> solo script que scrapee cualquier sitio que reciba.
>>>>>>>> La forma mas bruta es poner todas los posibles XPATH, para que
>>>>>>>> verifique cual usa el sitio. Pero queria saber si hay alguna forma mejor.
>>>>>>>>
>>>>>>>> Saludos!
>>>>>>>> _______________________________________________
>>>>>>>> Lista de Correo de PyAr - Python Argentina - pyar en python.org.ar
>>>>>>>> Sitio web: http://www.python.org.ar/
>>>>>>>>
>>>>>>>> Para administrar la lista (o desuscribirse) entrar a
>>>>>>>> http://listas.python.org.ar/listinfo/pyar
>>>>>>>>
>>>>>>>> La lista de PyAr esta Hosteada en USLA - Usuarios de Software Libre
>>>>>>>> de Argentina - http://www.usla.org.ar
>>>>>>>
>>>>>>>
>>>>>>>
>>>>>>> --
>>>>>>>
>>>>>>> *Victor Andres Martinez Hernandez*
>>>>>>> *Administrador de redes*
>>>>>>> _______________________________________________
>>>>>>> Lista de Correo de PyAr - Python Argentina - pyar en python.org.ar
>>>>>>> Sitio web: http://www.python.org.ar/
>>>>>>>
>>>>>>> Para administrar la lista (o desuscribirse) entrar a
>>>>>>> http://listas.python.org.ar/listinfo/pyar
>>>>>>>
>>>>>>> La lista de PyAr esta Hosteada en USLA - Usuarios de Software Libre
>>>>>>> de Argentina - http://www.usla.org.ar
>>>>>>
>>>>>> _______________________________________________
>>>>>> Lista de Correo de PyAr - Python Argentina - pyar en python.org.ar
>>>>>> Sitio web: http://www.python.org.ar/
>>>>>>
>>>>>> Para administrar la lista (o desuscribirse) entrar a
>>>>>> http://listas.python.org.ar/listinfo/pyar
>>>>>>
>>>>>> La lista de PyAr esta Hosteada en USLA - Usuarios de Software Libre
>>>>>> de Argentina - http://www.usla.org.ar
>>>>>
>>>>> _______________________________________________
>>>>> Lista de Correo de PyAr - Python Argentina - pyar en python.org.ar
>>>>> Sitio web: http://www.python.org.ar/
>>>>>
>>>>> Para administrar la lista (o desuscribirse) entrar a
>>>>> http://listas.python.org.ar/listinfo/pyar
>>>>>
>>>>> La lista de PyAr esta Hosteada en USLA - Usuarios de Software Libre de
>>>>> Argentina - http://www.usla.org.ar
>>>>
>>>>
>>>> Una opción interesante es buscar si los sitios de noticias tienen algun
>>>> tipo de feed simplificado, como puede ser el RSS. Si lo poseen, es mucho
>>>> más sencilllo tomar datos de ahí que de la pagina.
>>>>
>>>> Gedece
>>>> _______________________________________________
>>>> Lista de Correo de PyAr - Python Argentina - pyar en python.org.ar
>>>> Sitio web: http://www.python.org.ar/
>>>>
>>>> Para administrar la lista (o desuscribirse) entrar a
>>>> http://listas.python.org.ar/listinfo/pyar
>>>>
>>>> La lista de PyAr esta Hosteada en USLA - Usuarios de Software Libre de
>>>> Argentina - http://www.usla.org.ar
>>>
>>>
>>>
>>> --
>>>
>>> _______________________________________________
>>> Lista de Correo de PyAr - Python Argentina - pyar en python.org.ar
>>> Sitio web: http://www.python.org.ar/
>>>
>>> Para administrar la lista (o desuscribirse) entrar a
>>> http://listas.python.org.ar/listinfo/pyar
>>>
>>> La lista de PyAr esta Hosteada en USLA - Usuarios de Software Libre de
>>> Argentina - http://www.usla.org.ar
>>
>> _______________________________________________
>> Lista de Correo de PyAr - Python Argentina - pyar en python.org.ar
>> Sitio web: http://www.python.org.ar/
>>
>> Para administrar la lista (o desuscribirse) entrar a
>> http://listas.python.org.ar/listinfo/pyar
>>
>> La lista de PyAr esta Hosteada en USLA - Usuarios de Software Libre de
>> Argentina - http://www.usla.org.ar
>
> _______________________________________________
> Lista de Correo de PyAr - Python Argentina - pyar en python.org.ar
> Sitio web: http://www.python.org.ar/
>
> Para administrar la lista (o desuscribirse) entrar a
> http://listas.python.org.ar/listinfo/pyar
>
> La lista de PyAr esta Hosteada en USLA - Usuarios de Software Libre de
> Argentina - http://www.usla.org.ar



--
------------ próxima parte ------------
Se ha borrado un adjunto en formato HTML...
URL: <http://listas.python.org.ar/pipermail/pyar/attachments/20190703/955eeffb/attachment.html>


Más información sobre la lista de distribución pyar