Scrapping pinterest

Iniciado por Stoya, 29 Agosto 2015, 00:56 AM

0 Miembros y 1 Visitante están viendo este tema.

Stoya

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.

str_null

#1
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.
Las aulas educan pero el tiempo enseña

Stoya

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.

someRandomCode

Lo mismo que se envia por AJAX, se puede enviar con wget, el tema es que la respuesta no sea JSON

Stoya

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.

patilanz

Sabes la función js que se ejecuta al hacer scroll?

Stoya

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?

patilanz

#7
Cita de: 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?

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

Stoya

Creo que es ésta:

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.