Answers:
我是@oneqeightyfour的答案中链接的脚本的作者。因此,尽管我参加聚会有点晚,但是这里是您可以使用的脚本的修改版本。
我确实找到了一个声称也可以做到这一点的一键式网站,但是我无法使其正常工作。您可能想先尝试一下?
从编程的角度来看,使用API比尝试抓取站点要简单得多。此外,Tumblr条款和条件会令您不通过API批量访问数据而烦恼。
要获取您的API密钥:
选择“注册应用程序”,然后使用以下详细信息:
这将带您返回第一页。系统会为您显示OAuth使用方密钥。复制它-我们将很快使用它。
这是我的脚本的轻率修改版本。将其复制并粘贴到文本编辑器(例如TextEdit或Notepad)中,然后另存为originals.py
。
您应该将HOSTNAME
变量替换为博客的URL,并将API_KEY
变量替换为在步骤1中检索到的OAuth使用方密钥。
#!/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!")
这是一个Python脚本,适用于Python 2或3。如果您使用的是Google,则应该能够找到有关针对所选操作系统运行Python脚本的说明。
该脚本将打印出未从Tumblr API获得任何重新博客信息的URL列表。在我的(非常简短的)测试中,它似乎选择了一些实际上是重新博客的URL –我没有做任何挖掘来弄清楚为什么会这样。
玩得开心!:-)
互联网上有人为此编写了脚本,您可以在Github上找到它。您必须将主机名和API密钥的参数更改为自己的tumblr主机名,并分别添加自己的API密钥。
您的主机名应类似于“ x.tumblr.com”,(一定要用“”标记将其包装)。
然后,您需要从Tumblr获取API密钥。去做这个:
单击注册应用程序,其中包含以下详细信息:
您将被带回到上一页并获得您的消费者密钥。
复制并将已获得的密钥粘贴到脚本中并运行它。
如果您不熟悉脚本和编码,则可以选择使用他的“一键式”解决方案网站,只需提供Tumblr的网址。