用Python向Tumblr发布图片

3 投票
3 回答
4477 浏览
提问于 2025-04-16 11:28

我正在尝试用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()

撰写回答