「長門有希の100冊は図書館で揃うか?」 その5 岩手県内主要市立図書館編

ようやく7図書館全てたたくスクリプトが完成、とりあえずデータは取れたがヒット率がひどく悪いのでヒットしなかった書籍を手動で書名検索しなおさなければならないのが面倒(ISBNが未登録でヒットしてない可能性があるので)
最近合併してそれなりの都市になったところは、きっと所蔵数が多くてもダブりが多くて種類が少ないのだろう

それはそうと、なんとなくHTML::TagParserの使い方が分かってきた気がする。
今まで、何段階か踏まないと表示できない検索結果の取り出しに何度もcgiを呼び出していたが(検索結果の取り出しをPerlで書くのが面倒だったので)
HTML::TagParserを使うと1個のcgiで済んでしまうのが便利
たとえば江刺図書館の場合

    1. 図書館のTOPページへアクセスし、リンクを解析して1個目のSIDを取り出す
    2. 取り出したSIDを元に、簡易検索ページにアクセスし、リンクを解析して2個目のSIDを取り出す
    3. 2個目のSIDとISBNをキーに詳細検索ページにアクセス

という手順でようやく検索結果が分かるのだが、現行では1.と2.でアクセスしてリダイレクトするcgiを作成し、解析をjavascriptで行っているが
HTML::TagParserを使うと、

    1. 図書館のTOPページへアクセスし、Aタグに含まれるアトリビュートのうち、特定の文字列が含まれるものからSIDのbyte位置を計算して1個目のSIDを取り出す
    2. 取り出したSIDを元に、簡易検索ページにアクセスし、Aタグに含まれるアトリビュートのうち、特定の文字列が含まれるものからSIDのbyte位置を計算して2個目のSIDを取り出す
    3. 2個目のSIDとISBNをキーに詳細検索ページにアクセスし、Aタグに含まれるアトリビュートのうち、特定の文字列が含まれるもので、検索結果詳細のURLを取り出す

が1個のcgiで出来てしまう。便利〜