【问题标题】:Post picture to Tumblr using Python使用 Python 将图片发布到 Tumblr
【发布时间】:2011-02-08 20:44:17
【问题描述】:

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

当我运行这个结果是博客到达,而不是:

我的条目标题

这是一个有照片的故事

[图片]

我明白了:

我的条目标题

这是一个故事 图片图片.png

【问题讨论】:

  • 也许有人会写一个正确的答案,但我现在至少可以告诉你,你正在发送 'picture.png' 作为字符串,这与“这是一个故事”没有什么不同。查看 api 文档以了解如何实际传输 图像
  • 我认为你不需要code.google.com/p/python-tumblr。它只是使简单的 POST 问题复杂化。看看这个:stackoverflow.com/questions/3266194/…

标签: python tumblr


【解决方案1】:

在您当前的代码中,您不是在发布图像,而是在发送一个名为“picture.png”的字符串。正如 Daniel DiPaolo 所说,你必须使用写一张照片。例如,write_photo 的参数是图片的链接。

#!/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()

【讨论】:

  • 如果您选择不将图像数据作为data arg 传入,则write_photo 的参数只是指向图像的链接:)
【解决方案2】:

您实际上并没有发送图像数据,您只是发送了一个包含文件名的字符串,所以这并不奇怪。 write_regular 调用 allows HTML 因此,如果您可以在某处上传照片,您应该能够在帖子文本中使用 <img src="..." /> 标记,以使图像显示在您的帖子中。

或者您可以使用 write_photo 调用将照片(而不仅仅是文件名!)上传到 Tumblr,然后以某种方式获取该网址并在您的帖子中使用 <img> 标记。

【讨论】:

  • 我想了这么多,只是不知道如何改变它来工作:) 无论如何,问题有点相关:如何保存一个 html 字符串?由于 html 的标记显然与 Python 相混淆。
  • 字符串中的 HTML 如何与 Python 混淆? 'This is a cool picture: <img src="my_url_goes_here"/>' 在 Python 中工作得非常好(请注意,如果更方便,您可以对字符串使用单引号,在这种情况下可能就是这样)
  • 啊,这可能就是原因。我习惯使用双引号。
  • 也可以转义双引号:x = "< a href=\"\" />"
【解决方案3】:

我在这里用 API v2 做了一个例子 https://gist.github.com/1242662

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2012-02-19
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-02-16
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多