次へ: 2 HTML のおおまかな仕組み 上へ: AWK による HTML ファイルの整形 前へ: AWK による HTML ファイルの整形 (PDF ファイル: awkhtml.pdf)


1 はじめに

今回は、データの加工例として、HTML データ、特に Yahoo! のニュース記事を 手元で加工する方法について紹介します。 なお、加工したデータを個人的に楽しむのは違法ではありませんが、 それを公開したり、第 3 者に渡したりするのは問題がありますので 注意してください。

多くの方がご存じのように、Yahoo! (http://www.yahoo.co.jp/) には 各新聞社などが提供するニュース1を紹介しているコーナーがあります。

ここには、毎日のニュース記事がカテゴリ別 (社会、国際、スポーツなど) に 掲示されていて、私もよく利用しています。

しかし、私が普段利用している古い (がしかし軽快な) ブラウザ Netscape 3.04 で見るときに不便に感じる点がいくつかあります。

  1. 一覧と各記事の行ったりきたりが不便
    ニュース記事の一覧からリンクを開くと、 ブラウザの同じウィンドウにリンク先の記事が表示されるので、 見たい記事を探すためにまた同じウィンドウ内の 一つ前の一覧のページに戻らないといけません。

    ニュース記事のページには前後 2 つずつ位の記事へのリンクも 貼られているのですが、やはり一覧全体を見て記事を探したいので、 そちらに戻ることになります。

    最近のタブブラウザならば、過去にアクセスしたページとの切り替えは 軽快に行えるのですが、Netscape 3.04 はそうではないので、 一覧に戻ろうとするとまたそこでネットワークにアクセスして一覧のデータを 再び取得しようとしてしまいます。

  2. 記事の並び方
    ニュース記事は、時間順に並んでいるので、ある記事の続報がすぐその次に 並ぶとは限りません。特に社会ニュースのように記事数の大変多いカテゴリでは、 その続報や関連する分野のニュースを見たい場合にそれを探すのが大変です。

  3. 一覧自体が複数ページ
    ニュース記事の一覧には、その一覧だけではなくて、広告、最新のニュース、 天気予報など、色々不要な情報が含まれていて、 それで一覧のページに書ける情報量が少なくなっているためか、 1 日のニュースの一覧自体が複数のページに分割されてしまっています。

    例えば社会ニュースのように 1 日 100 件以上のニュースが流れているところは、 一覧自体が 6 ページ位に分かれていて、 一覧の全体を見るのにもいちいちページの切り替えと ネットワークアクセスが必要となります。

  4. 記事のページの情報量
    一覧だけではなく、記事自体のページにも色々なリンクや広告などが含まれていて、 ニュースの内容以外のものがページ内のある割合を占めています。 これは、そのニュース記事を印刷するときにも無用にページ数が増えてしまう 原因になります。

私はこれらを解消するために、一覧の記事全体を手元に一旦取得してから、 csh のスクリプトや AWK のスクリプトを利用して それらを加工して新たな一覧を作って、 上のような問題を解消するような方法でニュースの閲覧を行っています。

今回はこの 4. の、記事のページから不要なものを削除する、 という方法について紹介します。

なお、この 4. に関しては、 ブラウザで記事の内容を見るときにこれを行っているわけではありません。 つまり見るときは通常の広告等の入った記事を見ていますが、 それを印刷するときにそのページを一旦手元に保存して、 今回で紹介するような AWK スクリプトを使って加工して、 記事の内容だけを取りだしたものを印刷する、という手法を使っています。

もし、記事を閲覧するときにも広告等を削除したものを見るようにするには、 すべての記事を一旦手元に持ってきて、それらをすべて加工してから閲覧する、 ということをしなければいけませんが、 一覧はすべて目を通しますが ニュース記事は必ずしもすべての記事を読むわけではありませんから、 それは不要な記事まで持ってくるための不要なネットワークアクセスを 増やすことになりますので、そういう風にはしていません。

また、今回は 1., 2., 3. の 手法、すなわち一覧を取得してそれを加工する、 という方法については説明しませんが、 これは別の機会に紹介したいと思います。


次へ: 2 HTML のおおまかな仕組み 上へ: AWK による HTML ファイルの整形 前へ: AWK による HTML ファイルの整形
竹野茂治@新潟工科大学
2006年8月14日