Foro de elhacker.net

Programación => Desarrollo Web => Mensaje iniciado por: Stoya en 29 Agosto 2015, 00:56 am



Título: Scrapping pinterest
Publicado por: Stoya en 29 Agosto 2015, 00:56 am
Objetivo: descargar todas las imágenes de un tablón de pinterest.

Problema: el tablón está paginado y sólo puedo acceder a las imágenes más recientes.

Métodos: tanto la API como accediendo con un bot. Ambos métodos presentan el mismo problema.

En el caso de la API: no da más de 50 resultados. No parece haber ninguna forma para indicar un desplazamiento u "offset" y recuperar los siguientes 50.

En el caso de acceder con un bot: hace falta hacer una petición javascript, con un parámetro "bookmarks" que está codificado de una forma muy extraña y misteriosa. No encuentro la forma de generarlo a partir de la información de la página.

¿Alguien tiene alguna idea de qué hacer?

El lenguaje de programación me da igual, no es relevante para la pregunta, la cuestión es poder hacerlo en cualquiera.

Gracias a todos por las respuestas, perdón si esto debería ir en otro tablón y gracias a los moderadores por moverlo en caso de que así sea.


Título: Re: Scrapping pinterest
Publicado por: str_null en 3 Septiembre 2015, 15:25 pm
Hola, has probado HTTrack? No tengo ni idea de si tiene que ver con lo que buscas pero lo mismo te sirve  ;D ;D

O quiza te sirvan herramientas tipo Spider que se usan para SEO a la hora de obtener los links de las ímagenes luego ya sería descargarlas. Probablemente no te este aportando demasiado pero bue, ahi queda.


Título: Re: Scrapping pinterest
Publicado por: Stoya en 6 Septiembre 2015, 15:34 pm
En lugar de HTTrack usaría wget, y en cuanto a herramientas "tipo Spider", ya tengo mi propio cliente de http para todo esto.

El problema es AJAX.

Es necesario bajar al final del tablón para que se cargue la siguiente sección de la página, para indicar el avance se usa un parámetro "bookmarks", que no sé cómo rellenar.


Título: Re: Scrapping pinterest
Publicado por: someRandomCode en 6 Septiembre 2015, 15:58 pm
Lo mismo que se envia por AJAX, se puede enviar con wget, el tema es que la respuesta no sea JSON


Título: Re: Scrapping pinterest
Publicado por: Stoya en 27 Septiembre 2015, 09:39 am
A ver, estoy usando httpclient, pero podría usar cualquier otra cosa.

Que la respuesta sea JSON me da igual, porque uso la librería de JSON de Play.

El problema es poner un parámetro en la petición GET, que no sé de dónde sale.


Título: Re: Scrapping pinterest
Publicado por: patilanz en 29 Septiembre 2015, 15:18 pm
Sabes la función js que se ejecuta al hacer scroll?


Título: Re: Scrapping pinterest
Publicado por: Stoya en 11 Octubre 2015, 16:30 pm
No, y tampoco sé cómo mirarlo con las herramientas de desarrollador de Chrome ni Firefox. ¿Sabes si hay alguna forma de extraer esa información?


Título: Re: Scrapping pinterest
Publicado por: patilanz en 13 Octubre 2015, 00:46 am
No, y tampoco sé cómo mirarlo con las herramientas de desarrollador de Chrome ni Firefox. ¿Sabes si hay alguna forma de extraer esa información?

https://stackoverflow.com/questions/10213703/how-do-i-view-events-fired-on-an-element-in-chrome-web-developer

https://stackoverflow.com/questions/9951045/pinterest-api-documentation

Me estoy fijando también en el network para ver lo que envía y acepta.
Si consigo algo lo digo.

Un saludo


Título: Re: Scrapping pinterest
Publicado por: Stoya en 15 Octubre 2015, 10:34 am
Creo que es ésta:

Código:
function(){P.pubSub.instance.publish(P.CONST.PUBSUB_CHANNEL_SITE,P.CONST.PUBSUB_TOPIC_WINDOW_SCROLL_CHANGE),P.util.windowIsInFocus=!0}

Tengo cierta idea de javascript, pero la verdad es que esta sintaxis no la conozco, parece que separa sentencias con una coma en lugar de punto y coma.