¿Cómo puedo ver todas las notas de una publicación de Tumblr de Python?

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:

http://ronbarak.tumblr.com/notes/40692813320/4Y70Zzacy

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.

  • para un volcado de datos: urllib devolverá una cadena de la página que desea
  • Buscando una sección específica en el html: lxml es bastante bueno
  • Buscando algo en hrml ingobernable: definitivamente hermoso
  • buscando un elemento específico en una sección: beautifulsoup, lxml, el análisis de texto es lo que necesita.
  • Necesidad de poner los datos en una base de datos / archivo: usar scrapy

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.