通过Python将目录中的图片发布到Tumblr

2 投票
1 回答
1503 浏览
提问于 2025-04-17 13:06

我在论坛上搜索,找到一个帖子,之前我用它写了一个脚本,可以把图片上传到tumblr上。

from tumblr import Api
import sys

def antearaTumblr(blog, email, password):
    BLOG=blog
    USER=email
    PASSWORD=password
    api = Api(BLOG,USER,PASSWORD)
    #data = open('C:/Users/Kevin/Desktop/python-tumblr-0.1/1329360987775.jpg').read()
    api.write_photo('http://www.jonathanworthington.co.uk/wp-content/uploads/2008/07/etc.jpg')
    title = ''
    body = ''
    api.write_regular(title,body)

这个方法是有效的,它用write_photo从网上抓取一张照片并上传到我的tumblr上。不过,我不知道怎么从我电脑上的一个文件夹里抓取照片,比如这样……

from tumblr import Api
import sys

def antearaTumblr(blog, email, password):
    BLOG=blog
    USER=email
    PASSWORD=password
    api = Api(BLOG,USER,PASSWORD)
    data = open('C:/Users/Kevin/Desktop/python-tumblr-0.1/1329360987775.jpg').read()
    title = ''
    body = ''
    api.write_regular(title,data)

上传是成功了,但上传的内容只有这些……ÿØÿà……我猜这是jpg的头信息。

我找到这个话题 用Python把图片上传到Tumblr,但是我不太明白回复里说的是什么。

有没有人知道怎么用文件夹里的图片,而不是链接,来实现这个功能?

另外,我试过这个 https://gist.github.com/1242662,但老实说,我完全不知道该怎么做。

谢谢任何能提供帮助的人。

1 个回答

1

从链接的帖子来看,data是一个关键字参数,所以你应该这样调用api.write

api.write_regular(title, data=data)

我不知道这样做是否有效,但tumblr的API看起来文档写得很清楚。我建议你使用requests库,它是Python中最友好的HTTP库。要上传一张照片,你可以这样做:

import requests

url = 'https://www.tumblr.com/api/write'
data = {'email': your_email, 'password': your_password, 'type': 'photo'}
files = {'data': open('your_image.jpg')}

requests.post(url, data=data, files=files)

撰写回答