@ Oneqeightyfour'un cevabında bağlantılı olan senaryo yazarıyım. Partiye biraz geç kalmama rağmen, burada kullanabileceğiniz komut dosyasının değiştirilmiş bir sürümü.
Bunu da yaptığını iddia eden tek tıklamayla bir site buldum, ancak çalıştıramadım. Önce denemek ister misin?
1.Adım: Bir Tumblr API anahtarı edinin
API'yi kullanmak, programlama açısından siteyi kazımaya çalışmaktan çok daha kolaydır. Ayrıca, Tumblr T & C'leri, API üzerinden geçmeden verilere toplu olarak eriştiğinizde kaşlarını çattı.
API anahtarınızı almak için:
- Tumblr'da oturum açtığınızdan emin olun
- Onların git OAuth kayıt sayfası .
"Uygulamayı Kaydet" i seçin ve aşağıdaki ayrıntıları kullanın:
- Uygulama Adı: Tüm orijinal yayınlarımı bul
- Uygulama Açıklaması: Bir sitedeki tüm orijinal mesajları bulun; yani, web günlüğü olmayan yayınlar
- Varsayılan geri arama URL'si: /
Bu sizi ilk sayfaya götürür. Size bir OAuth Tüketici Anahtarı gösterilecektir . Bunu kopyalayın - kısa süre içinde kullanacağız.
2. Adım: Komut dosyasını ayarlayın
Bu benim betiğimin hafifçe değiştirilmiş sürümüdür. Bunu kopyalayıp bir metin düzenleyicisine (örn. TextEdit veya Not Defteri) yapıştırın ve olarak kaydedin originals.py
.
HOSTNAME
Değişkeni blogunuzun URL'siyle ve API_KEY
değişkeni 1. adımda aldığınız OAuth Tüketici Anahtarı ile değiştirmeniz gerekir .
#!/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!")
3. Adım: Komut dosyasını çalıştırın
Bu, Python 2 veya 3 için uygun bir Python betiğidir. Etrafta Google'daysanız, seçtiğiniz işletim sisteminiz için Python komut dosyalarını çalıştırma talimatlarını bulabilmeniz gerekir.
Komut dosyası, Tumblr API'sından herhangi bir blog günlüğü bilgisi almayan URL'lerin bir listesini yazdırır. (Çok kısa) testlerimde, aslında bloglar olan bir avuç URL alıyor gibiydi - Neden böyle olduğunu öğrenmek için herhangi bir kazma yapmadım.
İyi eğlenceler! :-)