twitpic閉鎖らしいので画像を保存するスクリプト書いたよ

2014年9月7日 Linux, スクリプト関連

2014/10/18 追記 :
リストの取得ができなくなったため、このスクリプトは正常に動かなくなりました。
画像のエクスポートが必要な方はtwitpicにログイン後、http://twitpic.com/account/settings からエクスポート機能を利用してください。

他所でrubyのとか見かけたけどせっかくだからと思ってShellscriptで書いた。
使用前に3行目と4行目ともしかしたら47行目をそれぞれの環境に合わせて書き換えて使うといいよ。
自分のアカウントじゃなくても使えるのであの人の絵残しときたいな、あの人の写真残しときたいなとか色々使えると思う。

ダウンロードはここ(https://github.com/fyopue/DLtwitpic)
ソースがスーパー汚いけどもとりあえず使える。

動作確認はLinux Mint 17でやったから多分Ubuntuでも平気。

#!/bin/bash
workdir=/tmp/
dld=/home/usr/twitpic/
usrid=twitpicusrname
seed=1

if [ ! -d ${dld} ]
then
  mkdir ${dld}
fi

cd ${workdir}
wget -P ${workdir} http://twitpic.com/photos/${usrid}

#末尾ページ認識
lend=`cat "${workdir}${usrid}" | sed "s/\t\|  //g" | tr -d "\n" | sed -e "s/<div id\=\"user\-pagination\">/\n<div id\=\"user\-pagination\">/g" | grep pagination | sed -e "s/></\n/g" | grep Last | grep -o [0-9] | tr -d "\n"`

#
rm ${workdir}${usrid}


#リスト生成
for (( i = 0; i < ${lend}; i++ ))
{

  sleep "1" && wget -P ${workdir} http://twitpic.com/photos/${usrid}?page=${seed}

#抜き取り
  cat "${workdir}${usrid}?page=${seed}" | sed "s/\t\|  //g" | tr -d "\n" | sed -e "s/<div class\=\"user\-photo\-wrap\">/\n<div class\=\"user\-photo\-wrap\">/g" -e "s/<div id\=\"user\-pagination\">/\n<div id\=\"user\-pagination\">/g" | grep -v javascript | grep -o \"\/.*\"\>\<img | sed -e "s/\"\|><img//g" -e "s/^/http\:\/\/twitpic\.com/g" -e "s/$/\/full/g" >> list

#
  rm /tmp/${usrid}?page=${seed}

  (( seed++ ))

}


#画像取得
wrk=`cat ${workdir}list | wc -l`
seed=1

for (( i = 0; i < ${wrk}; i++ ))
{

  sleep "1" && wget -P ${workdir} `cat ${workdir}list | head -${seed} | tail -1`
  sleep "1" && wget -P "${dld}" `cat ${workdir}full | grep d3j5vwomefv46c | grep -o \"[@-~].*\? | sed "s/\"\|\?//g"`

#
  rm ${workdir}full

  (( seed++ ))

}

#
rm ${workdir}list

そういえば、最近はコマンド内でコマンド実行させるのに$()←こんなのつけるのが推奨されてるらしいですねっ!!

コメントは受け付けていません。