MENU

【Python】Livedoorブログの画像を一括ダウンロードするプログラム

LivedoorブログからWordPressに移行するときに問題になるのが、画像のこと。

Livedoorブログには画像をエクスポートする機能がないため、記事に掲載されている画像をスクレイピングツールなどで抽出する必要があります。

Mac用の画像取得ツールが見つからなかったので、Pythonで画像取得プログラムを書いてみました。

※pythonがインストールされている前提で説明します。

※作成時点からライブドアの仕様がかわり、動かない可能性もありますので、ご注意ください。

目次

ソースコード

ブログの記事データから、画像のURLを取得してフォルダにダウンロードしています。

実際に使う場合には、current_urlのところにライブドアブログのURLを入れてください。

import re
import os
import urllib.request
import urllib.error
current_url = "https://livedoor.blogimg.jp/zeroforest" # 現在のライブドアブログの画像保存先URL
img_url = current_url+'/*imgs/[\w/:%#\$&\?\(\)~\.=\+\-]+' # 画像のURL
file_name = "backup.txt" # 読み込むファイル名
dir_name = "images" # 画像保存先フォルダ名
def download_file(url, dst_path):
  try:
    with urllib.request.urlopen(url) as web_file:
      data = web_file.read()
      with open(dst_path, mode='wb') as local_file:
        local_file.write(data)
  except urllib.error.URLError as e:
    print(e)
images = [] # 画像URL格納
# backup.txtから、画像URL取得
with open(file_name, "r") as file_data:
  for line in file_data:
    url_list = re.findall(img_url, line)
    for url in url_list:
      images.append(url)
print(str(len(images))+"個の画像を取得します")
# 画像保存先フォルダがなければ作成する。
try:
  os.makedirs(dir_name)
except:
  pass
# 画像のダウンロード
for img in images:
  download_file(img, os.path.join(dir_name, os.path.basename(img)))
このプログラムでやっていること
  1. backup.txtから画像のURLを取得する
  2. imagesフォルダを作成する
  3. 画像のURLにアクセスし、画像をimagesフォルダにダウンロードする。

使い方

プログラムを「script.py」というファイル名で保存します。

script.pyと同じフォルダ内に、ライブドア管理画面からエクスポートした記事データ「backup.txt」を置きます。

フォルダ
├─ script.py
└─ backup.txt

script.pyがあるフォルダ上でターミナルを開いてプログラムを実行します。

python script.py

実行すると、imagesフォルダが作られてm画像が保存されています。

フォルダ
├─ script.py
├─ backup.txt
└─ images
  ├─ 〇〇-s.jpg<br>
  ├─ 〇〇.jpg</p>

Livedoorブログの画像をスクレイピングするプログラムを紹介しました。

ライブドアブログから別ブログに移行時などにご活用いただければと思います。

  • URLをコピーしました!

この記事を書いた人

元エンジニア・コンサルタント→フリーランスへ。
個人事業主さん向けにWordPress・HP作成の個人レッスンをしています。

目次