##### プログラム本体 ##### BEGIN{ # (1) 先頭のページを soci-001.html として取得 # (2) そこから全部で何ページあるかを読みとる (= pages とする) for(j=1;j<pages;j++){ # (3) 先頭ページの URL の最後に "$p=j" をつけて HTML ファイルを # 取得し soci-[j+1].html として保存する } # (4) awk -f yahoo2.awk soci-001.html soci-002.html ... \ # > soci-lst1.html # を system() で実行する # (5) awk -f yahoo3-soci.awk -f yahoo3.awk soci-lst1.html \ # > soci-lst2.html # を system() で実行する }
なお、yahoo2.awk は、[5] で紹介した、 複数の一覧ファイルから余分なものを除いて一つの HTML ファイルに連結するための AWK スクリプトで、 yahoo3-soci.awk, yahoo3.awk は、それぞれ [6] で紹介した、 連結されたリストからジャンル分けする際のパターン定義部分の AWK スクリプトと 共有部分の AWK スクリプトであるとします。
(4),(5) はコマンドラインを生成して system() に渡して実行するだけですし、 (1),(3) は
wget -O soci-001.html "http://.../hl?c=soci&t=l"
(URL は長いので途中省略) 等を system() で実行するだけなので、
特に考える必要があるのは
(2) ということになります。
しかし、(2) も getline, match(), substr() を使う程度で、
それ程難しくはありません。