用Python向Tumblr发布图片
我正在尝试用Python把一张图片发到Tumblr,具体是用这个库:http://code.google.com/p/python-tumblr/
#!/usr/bin/python
from tumblr import Api
import sys
BLOG='example.tumblr.com'
USER='example@example.com'
PASSWORD='example'
api = Api(BLOG,USER,PASSWORD)
post_data = "picture.png"
title = "Title of my entry"
body = "this is a story with a picture"
api.write_regular(title, body + post_data)
当我运行这个代码时,结果是博客发到了,但是我本来想要的是:
我的文章标题
这是一个带图片的故事
[img]
但我得到的是:
我的文章标题
这是一个带图片的故事picture.png
3 个回答
1
我在这里做了一个关于API v2的示例,大家可以看看这个链接:https://gist.github.com/1242662
2
你其实并没有发送图片的数据,而只是发送了一个包含文件名的字符串,所以这也不奇怪。write_regular
这个调用 支持HTML,所以如果你能把照片上传到某个地方,你就可以在你的帖子文本中使用 <img src="..." />
标签,这样图片就能在你的帖子里显示出来。
或者你可以使用 write_photo
这个调用,把照片(而不仅仅是文件名)上传到Tumblr,然后以某种方式获取到那个图片的链接,再把这个链接放到你的 <img>
标签里,用于你的帖子。
2
在你现在的代码中,你并不是在发送一张图片,而是在发送一个叫“picture.png”的字符串。正如Daniel DiPaolo所说,你需要使用写入照片的方式。写入照片的参数是图片的链接,比如说。
#!/usr/bin/python
from tumblr import Api
import sys
BLOG='example.tumblr.com'
USER='example@example.com'
PASSWORD='example'
api = Api(BLOG,USER,PASSWORD)
api.write_photo('http://example.org/somewhere/lolcat.jpg')
如果你想发送HTML内容,可以创建一个很长的主体,里面包含你选择的标签。
title = "life is amazing"
body = """
_here my html code_
"""
然后通过API来写入这些内容。
api.write_regular(title,body)
这样就可以了。
数据上传
更准确地说;如果你想发送数据,你需要打开这个对象。假设你的图片是“lolcat.jpg”。
data = open('lolcat.jpg').read()