Ich bin der Autor des Skripts, das in der Antwort von @ oneqeightyfour verlinkt ist. Obwohl ich etwas spät zur Party komme, ist hier eine modifizierte Version des Skripts, das Sie verwenden können.
Ich habe eine One-Click-Site gefunden , die behauptet, dies auch zu tun, aber ich konnte das nicht zum Laufen bringen. Vielleicht möchten Sie das zuerst versuchen?
Schritt 1: Holen Sie sich einen Tumblr-API-Schlüssel
Die Verwendung der API ist aus Programmiersicht viel einfacher als der Versuch, die Site zu kratzen. Tumblr T & Cs missbilligen auch den Massenzugriff auf Daten, ohne über die API zu gehen.
So erhalten Sie Ihren API-Schlüssel:
- Stellen Sie sicher, dass Sie bei Tumblr angemeldet sind
- Gehen Sie zu ihrer OAuth-Registrierungsseite .
Wählen Sie "Antrag registrieren" und verwenden Sie die folgenden Details:
- Anwendungsname: Hier finden Sie alle meine Originalbeiträge
- Anwendungsbeschreibung: Finden Sie alle Originalbeiträge auf einer Website. Das heißt, Beiträge, die keine Weblogs sind
- Standard-Rückruf-URL: /
Dies bringt Sie zurück zur ersten Seite. Ihnen wird ein OAuth-Verbraucherschlüssel angezeigt . Kopieren Sie dies - wir werden es in Kürze verwenden.
Schritt 2: Richten Sie das Skript ein
Dies ist die leicht modifizierte Version meines Skripts. Kopieren Sie diese, fügen Sie sie in einen Texteditor (z. B. TextEdit oder Notepad) ein und speichern Sie sie unter originals.py
.
Sie sollten die HOSTNAME
Variable durch die URL Ihres Blogs und die API_KEY
Variable durch den OAuth-Verbraucherschlüssel ersetzen, den Sie in Schritt 1 abgerufen haben.
#!/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!")
Schritt 3: Führen Sie das Skript aus
Dies ist ein Python-Skript, das für Python 2 oder 3 geeignet ist. Wenn Sie Google verwenden, sollten Sie Anweisungen zum Ausführen von Python-Skripten für das Betriebssystem Ihrer Wahl finden.
Das Skript druckt eine Liste von URLs aus, bei denen keine Tumulatorinformationen von der Tumblr-API abgerufen wurden. Bei meinen (sehr kurzen) Tests schien es eine Handvoll URLs zu geben, die tatsächlich Runden waren - ich habe nicht gegraben, um herauszufinden, warum dies der Fall ist.
Habe Spaß! :-)