download_tumblr_image.py

  • August 28, 2007 08:30

ちょっと思い立ってtumblrの画像を保存するスクリプトを書いてみました。

が必要。

BeautifulSoupはdownloadの「tarbal」をクリックしてダウンロードして解凍したあと、

% python setup.py install

でOKです。

以下のスクリプトの最初の部分にtumblrのURLとダウンロード先のパスを書いてください。

書き捨てなのでこんなもんでしょう。

追記(8/30)

はてブで上手くいかないとのことだったので少し直しました。

download_tumblr_image.py

import urllib2
import os
import re
import time
from BeautifulSoup import BeautifulSoup

URL = "http://ueblog.tumblr.com/"
PATH = r"c:\tmp\image"

def get_url(page=1, endpage=None):
    while True:
        if endpage:
            if page > endpage:
                break
        print "page: ", page
        soup = BeautifulSoup(urllib2.urlopen((URL + "page/%s") % page).read())
        for img_tag in soup.findAll('img', src=re.compile("http://data.tumblr.com/.+")):
            yield img_tag.get("src")
        page += 1
        if not soup.find('a', href='/page/%s' % page):
            break

def image_download(url, path=PATH):
    filename = url.split(r'/')[-1]
    image = urllib2.urlopen(url).read()
    wf = open(os.path.join(path, filename), "wb")
    wf.write(image)
    wf.close()
    print "save %s" % filename
    time.sleep(5)

if __name__=="__main__":
    for i in get_url(1, 2):
        image_download(i)