##### プログラム本体 #####
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() を使う程度で、
それ程難しくはありません。