Digo que miro la siguiente publicación de Tumblr: http://ronbarak.tumblr.com/post/40692813.
Tiene (actualmente) 292 notas.
Me gustaría obtener todas las notas anteriores utilizando un script de Python (por ejemplo, a través de urllib2, BeautifulSoup, simplejson o tumblr Api). Algunos Googling extensos no produjeron ningún artículo relacionado con la extracción de notas en Tumblr.
¿Alguien puede indicarme la dirección correcta en qué herramienta me permitirá hacerlo?
Lamentablemente, parece que la API de Tumblr tiene algunas limitaciones (falta de metainformación sobre Reblogs, notas limitadas en 50), por lo que no puede obtener todas las notas.
También está prohibido hacer raspado de página de acuerdo con los Términos de servicio .
“No puede hacer nada de lo siguiente al acceder o utilizar los Servicios: (…) eliminar los Servicios, y particularmente eliminar el Contenido (como se define a continuación) de los Servicios, sin el consentimiento previo por escrito de Tumblr”;
Fuente:
https://groups.google.com/forum/?fromgroups=#!topic/tumblr-api/ktfMIdJCOmc
Sin JS obtienes páginas separadas que solo contienen las notas. Para la publicación del blog mencionado la primera página sería:
Las siguientes páginas están vinculadas en la parte inferior, por ejemplo:
(Vea mi respuesta sobre cómo encontrar la siguiente URL en el atributo onclick
).
Ahora puedes usar varias herramientas para descargar / analizar los datos.
El siguiente comando wget debería descargar todas las páginas de notas para esa publicación:
wget --recursive --domains=ronbarak.tumblr.com --include-directories=notes http://ronbarak.tumblr.com/notes/40692813320/4Y70Zzacy
Como Fabio implica, es mejor usar la API.
Si por alguna razón no puede, las herramientas que utilizará dependerán de lo que desee hacer con los datos en las publicaciones.
El esquema de url de Tumblr es simple: url / esquema / 1, url / esquema / 2, url / esquema / 3, etc … hasta que llegue al final de las publicaciones y los servidores ya no devuelvan ningún dato.
Entonces, si va a utilizar la fuerza bruta para raspar, puede decirle a su script que descargue todos los datos en su disco duro hasta que, digamos, la etiqueta de contenido esté vacía.
Un último consejo, recuerde que debe poner un poco de sueño (1000) en su script, ya que podría poner algo de estrés en los servidores de Tumblr.
¿Cómo cargar todas las notas en tumblr? También cubre el tema, pero la respuesta de unor (arriba) lo hace muy bien.