Sono l'autore della sceneggiatura collegata nella risposta di @ oneqeightyfour. Quindi, anche se sono un po 'in ritardo alla festa, ecco una versione modificata dello script che puoi usare.
Ho trovato un sito con un clic che afferma di fare anche questo, ma non sono riuscito a farlo funzionare. Potresti provare prima?
Passaggio 1: ottieni una chiave API Tumblr
L'utilizzo dell'API è molto più semplice, dal punto di vista della programmazione, rispetto al tentativo di demolire il sito. Inoltre, i Termini e condizioni di Tumblr aggrottano le sopracciglia quando si accede in blocco ai dati senza passare attraverso l'API.
Per ottenere la chiave API:
- Assicurati di aver effettuato l'accesso a Tumblr
- Vai alla loro pagina di registrazione OAuth .
Seleziona "Registra applicazione" e utilizza i seguenti dettagli:
- Nome applicazione: trova tutti i miei post originali
- Descrizione dell'applicazione: trova tutti i post originali su un sito; cioè post che non sono blog
- URL di richiamata predefinito: /
Questo ti riporta alla prima pagina. Ti verrà mostrato un codice cliente OAuth . Copia questo: lo useremo a breve.
Passaggio 2: imposta lo script
Questa è la versione leggermente modificata della mia sceneggiatura. Copialo e incollalo in un editor di testo (ad es. TextEdit o Blocco note) e salvalo come originals.py
.
È necessario sostituire la HOSTNAME
variabile con l'URL del blog e la API_KEY
variabile con la chiave consumer OAuth recuperata nel passaggio 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!")
Passaggio 3: eseguire lo script
Questo è uno script Python, adatto per Python 2 o 3. Se cerchi Google, dovresti essere in grado di trovare le istruzioni per eseguire gli script Python per il tuo sistema operativo preferito.
Lo script stamperà un elenco di URL in cui non ha ricevuto alcuna informazione di reblog dall'API Tumblr. Nei miei (molto brevi) test, mi è sembrato di raccogliere una manciata di URL che erano in realtà reblog - non ho fatto alcuno scavo per scoprire perché è così.
Divertiti! :-)