大量の HTML からリンクされているファイル名をフルパスで抽出する
なんかすげー不毛な作業。
wget が使えれば、そのログからファイル名を拾えたのだが、各ページのリンクに Javascript を使っている特殊なページ群だったので、シェルスクリプトと perl を使ってかなり力技な事をやってみた。
**ファイル群をローカルに落とし、 find で HTML のリストを作成
find . -name "*.html" > list-html.txt
**テキストエディタで整形して、フルパスにする。
~/hoge/aaa.html → http://www.hoge.com/aaa.html
emacs の矩形置換とかを使えば一発ですね。
**HTML からリンクを抽出するツールを用意
OYAMA 氏が非常に便利な perl スクリプトを公開されていたので、そちらを使用。
[[MODULE.JP - Monday Module (遅っ) HTML::LinkExtor:http://module.jp/blog/monday_module_HTML-LinkExtor.html]]
**シェルスクリプトの作成
[[ここのページ:http://www.rhythm-cafe.com/kb/shell/index.asp?sid=46&id=61]] を参考に、シェルスクリプトを作成
#!/bin/sh
for fn in `cat list-html.txt`
do
echo "■" $fn
perl ~/bin/extlink/extlink $fn
echo
done
echo "処理は終了しました。"
作成っていっても、サンプルの 4 〜 6 行目を変えただけだけど。
**実行
./extlink.sh > result.txt