Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/334.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
在Tumblr上查找未标记的帖子(请求Python-3.3编码帮助)_Python_Syntax_Tumblr_Python 3.3 - Fatal编程技术网

在Tumblr上查找未标记的帖子(请求Python-3.3编码帮助)

在Tumblr上查找未标记的帖子(请求Python-3.3编码帮助),python,syntax,tumblr,python-3.3,Python,Syntax,Tumblr,Python 3.3,一般来说,我对编码非常陌生;我深入研究这个项目是为了帮助我的朋友在Tumblr上给她贴上15000条和一些零散的帖子。我们终于完成了,但她想确保我们没有错过任何东西。。。 所以,我搜索了互联网,试图找到一个编码解决方案。我发现了一个脚本,据说它正是我们所需要的——所以我下载了Python,但……它不起作用 更具体地说,当我点击脚本时,一个黑匣子出现了大约半秒钟,然后消失了。我还没能截图框,以找出确切的说什么,但我相信它说有语法错误。起初,我尝试使用Python 2.4;它似乎找不到创建者使用的J

一般来说,我对编码非常陌生;我深入研究这个项目是为了帮助我的朋友在Tumblr上给她贴上15000条和一些零散的帖子。我们终于完成了,但她想确保我们没有错过任何东西。。。 所以,我搜索了互联网,试图找到一个编码解决方案。我发现了一个脚本,据说它正是我们所需要的——所以我下载了Python,但……它不起作用

更具体地说,当我点击脚本时,一个黑匣子出现了大约半秒钟,然后消失了。我还没能截图框,以找出确切的说什么,但我相信它说有语法错误。起初,我尝试使用Python 2.4;它似乎找不到创建者使用的Json模块,所以我切换到了Python 3.3——Windows的最新版本,这就是语法错误发生的地方

#!/usr/bin/python

import urllib2
import json

hostname = "(Redacted for Privacy)"
api_key = "(Redacted for Privacy)"

url = "http://api.tumblr.com/v2/blog/" + hostname + "/posts?api_key=" + api_key

def api_response(url):
req = urllib2.urlopen(url)
return json.loads(req.read())

jsonresponse = api_response(url)
post_count = jsonresponse["response"]["total_posts"]
increments = (post_count + 20) / 20

for i in range(0, increments):

  jsonresponse = api_response(url + "&offset=" + str((i * 20)))
  posts = jsonresponse["response"]["posts"]

for i in range(0, len(posts)):
 if not posts[i]["tags"]:
  print posts[i]["post_url"]

print("All finished!")
所以,嗯,我的问题是:如果这个编码有一个语法错误,可以修复,然后用于查找Tumblr上未标记的帖子,那么这个错误可能是什么? 如果这段代码已经过时(通过Tumblr或Python更新),那么有一点空闲时间的人是否愿意帮助创建一个新脚本来查找Tumblr上未标记的帖子?搜索Tumblr时,这似乎是一个半常见的问题

如果有必要,Python将安装在C:\Python33中


谢谢您的帮助。

Tumblr有一个API。你可能会有更好的成功使用它

当我点击脚本时,一个黑框出现大约半秒钟,然后 消失

至少,您应该能够从命令行运行Python脚本,例如do


包含Python 2脚本(查看源代码中的
import urllib2
urllib2
在Python 3中重命名为
urllib.request
)。将脚本移植到Python 3很容易:

#!/usr/bin/env python3
"""Find untagged tumblr posts.

Python 3 port of the script from
  http://www.alexwlchan.net/2013/08/untagged-tumblr-posts/
"""
import json
from itertools import count
from urllib.request import urlopen

hostname, api_key = "(Redacted for Privacy)", "(Redacted for Privacy)"
url = "https://api.tumblr.com/v2/blog/{blog}/posts?api_key={key}".format(
    blog=hostname, key=api_key)

for offset in count(step=20):
    r = json.loads(urlopen(url + "&offset=" + str(offset)).read().decode())
    posts = r["response"]["posts"]
    if not posts: # no more posts
        break
    for post in posts:
        if not post["tags"]: # no tags
            print(post["post_url"])
下面是使用官方(仅限Python 2)库实现的相同功能:


打开命令提示符并键入
python foo.py
,其中
foo.py
应替换为文件名。然后您将能够读取错误。这可能与缩进有关,因为你的缩进太乱了。Fwiw,我认为Python脚本是一种很糟糕的方法,现在有一种更友好的方法来做这件事:(我编写了有问题的脚本,回头看我的旧代码让我畏缩。)注:官方的Python Tumblr API是。虽然使用
#!/usr/bin/env python
from itertools import count
import pytumblr # $ pip install pytumblr

hostname, api_key = "(Redacted for Privacy)", "(Redacted for Privacy)"
client = pytumblr.TumblrRestClient(api_key, host="https://api.tumblr.com")
for offset in count(step=20):
    posts = client.posts(hostname, offset=offset)["posts"]
    if not posts: # no more posts
        break
    for post in posts:
        if not post["tags"]: # no tags
            print(post["post_url"])