Soy el autor del guión vinculado en la respuesta de @ oneqeightyfour. Entonces, aunque llego un poco tarde a la fiesta, aquí hay una versión modificada del script que puede usar.
Encontré un sitio de un solo clic que dice hacer esto también, pero no pude lograr que funcione. ¿Es posible que quieras probar eso primero?
Paso 1: obtenga una clave API de Tumblr
Usar la API es mucho más simple, desde una perspectiva de programación, que tratar de raspar el sitio. Además, los términos y condiciones de Tumblr no le permiten ver los datos de acceso masivo sin pasar por la API.
Para obtener su clave API:
- Asegúrate de haber iniciado sesión en Tumblr
- Vaya a su página de registro de OAuth .
Seleccione "Registrar aplicación" y use los siguientes detalles:
- Nombre de la aplicación: Encuentra todas mis publicaciones originales
- Descripción de la aplicación: Encuentra todas las publicaciones originales en un sitio; es decir, publicaciones que no son weblogs
- URL de devolución de llamada predeterminada: /
Esto te lleva de vuelta a la primera página. Se le mostrará una clave de consumidor OAuth . Copia esto, lo usaremos en breve.
Paso 2: configura el script
Esta es la versión ligeramente modificada de mi script. Copie y pegue esto en un editor de texto (por ejemplo, TextEdit o Notepad) y guárdelo como originals.py
.
Debe reemplazar la HOSTNAME
variable con la URL de su blog y la API_KEY
variable con la clave de consumidor OAuth que recuperó en el paso 1.
#!/usr/bin/env python
import json
try:
from urllib.request import urlopen
except ImportError:
from urllib2 import urlopen
HOSTNAME = "alexwlchan.tumblr.com"
API_KEY = "abcdefg"
BASE_URL = (
"http://api.tumblr.com/v2/blog/{hostname}/"
"posts?api_key={key}&reblog_info=true"
) .format(hostname=HOSTNAME,key=API_KEY)
def api_response(url):
req = urlopen(url)
return json.loads(req.read())
jsonresponse = api_response(BASE_URL)
post_count = jsonresponse["response"]["total_posts"]
for count in range(0, post_count, 20):
jsonresponse = api_response("{url}&offset={count}".format(
url=BASE_URL,
count=count))
for post in jsonresponse["response"]["posts"]:
if "reblogged_from_name" not in post:
print(post["post_url"])
print("All finished!")
Paso 3: ejecuta el script
Este es un script de Python, adecuado para Python 2 o 3. Si buscas en Google, deberías poder encontrar instrucciones para ejecutar scripts de Python para el sistema operativo que elijas.
El script imprimirá una lista de URL donde no obtuvo ninguna información de la API de Tumblr. En mis (muy breves) pruebas, pareció recoger un puñado de URL que en realidad eran falsas, no he investigado para averiguar por qué ese es el caso.
¡Que te diviertas! :-)