Я автор сценария, на который ссылается ответ @ oneqeightyfour. Поэтому, хотя я немного опоздал на вечеринку, вот модифицированная версия скрипта, которую вы можете использовать.
Я нашел сайт с одним щелчком, который утверждает, что делает это также, но я не мог заставить это работать. Возможно, вы захотите попробовать это в первую очередь?
Шаг 1: получить ключ API Tumblr
Использование API намного проще, с точки зрения программирования, чем пытаться очистить сайт. Кроме того, Tumblr T & C не одобряют массовый доступ к данным без использования API.
Чтобы получить ключ API:
- Убедитесь, что вы вошли в Tumblr
- Перейдите на страницу регистрации OAuth .
Выберите «Зарегистрировать приложение» и используйте следующие данные:
- Имя приложения: Найти все мои оригинальные сообщения
- Описание приложения: Найти все оригинальные посты на сайте; то есть сообщения, которые не являются блогами
- URL обратного вызова по умолчанию: /
Это вернет вас на первую страницу. Вам будет показан ключ потребителя OAuth . Скопируйте это - мы будем использовать это в ближайшее время.
Шаг 2: Настройте скрипт
Это слегка измененная версия моего сценария. Скопируйте и вставьте его в текстовый редактор (например, TextEdit или Notepad) и сохраните как originals.py
.
Вам следует заменить HOSTNAME
переменную URL-адресом вашего блога, а API_KEY
переменную - ключом пользователя OAuth, который вы получили на шаге 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!")
Шаг 3: Запустите скрипт
Это скрипт Python, подходящий для Python 2 или 3. Если вы используете Google, вы сможете найти инструкции по запуску скриптов Python для выбранной вами операционной системы.
Сценарий распечатает список URL-адресов, по которым он не получил никакой информации о журнале перезаписи от Tumblr API. В моем (очень кратком) тестировании он, похоже, выбрал несколько URL-адресов, которые на самом деле были реблогами - я не копался, чтобы выяснить, почему это так.
Радоваться, веселиться! :-)