2012-02-16 63 views
2

我搜索了董事會,並找到一個線程,我用它來上傳一張圖片到tumblr的腳本。張貼圖片從目錄到tumblr通過python

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標題。

我發現此主題Post picture to Tumblr using Python但我不確切地知道答覆的內容。

有誰知道如何讓它使用目錄而不是鏈接工作?

此外,我試過這https://gist.github.com/1242662但老實說,我只是不知道該怎麼做。

感謝您收到我的任何幫助。

回答

1

縱觀鏈接後似乎數據是關鍵字參數,所以你會打電話api.write這樣的:

api.write_regular(title, data=data) 

我不知道這是否會工作或沒有,但tumblr的API似乎well documented 。我建議使用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) 
+0

嗯,我試過了,但它似乎沒有做任何事情= /。 – Anteara 2012-02-16 10:38:37

+0

實際上它從上面的鏈接工作到github。謝謝。 – Anteara 2012-02-16 11:59:44

+0

很高興你至少在工作!實際上,我在發佈之前對此進行了測試,並且對我來說工作得很好。也許你忘了設置電子郵件,密碼或更改文件名,所以它指向一個真正的文件?什麼都不做會令人驚訝,你可以執行'r = requests.post(...)'並查看'r.content'來查看服務給你的錯誤。 – zeekay 2012-02-16 14:38:35