[BlueLeaf1336]> PROBLEMS> iタウンページ解析 iTownDown>
history | TOP |
2005/08/27:作成
検索結果のページ | TOP |
さっそくですが、「業種名」「本屋」「兵庫県」で検索した結果がこれです。
考慮すべきは、まず当然のことながら「検索結果」です。どうも1ページあたり10件ずつしか表示しないようです。それから「残りの検索結果への移動リンク」です。実際には全部で何ページあって今何番目にあるかというのも表示してやりたいところです。でないと、キャンセルしたくなったときに、もうちょっと待ったら全部取れたのにぃなんてことが防げます。
検索結果のページのソースを眺めたりすかしたりしてみると、データは次のようなタグの間に含まれていることがわかります。つまり
<TABLE border="0" cellpadding="0" cellspacing="0" width="520"><TR><TD width="276" STYLE="word-break: break-all"><FONT size="-1">
で始まり
</table>
で終わっています。さて、問題は、このタグに挟まれている部分のフォーマットです。が、あとで考えることにします。
次に、「キーワード」「本屋」「姫路市」で検索した結果を見ると11件目以降の検索結果へのリンクは次のようなタグに挟まれていると考えてよさそうです。
<a href="/servlet/jp.ne.itp.sear.SKWSVmain?submitType=OP2&menuType=&Gyoumu_cate=3&Media_cate=pda&c_gid=SW0110&n_gid=&r_gid=SW0110&index_50on=111111111100
から
</a>
まで。また、データの方は始まりと終りのタグは捨ててしまってよかったんですが、こっちの方は、リンク先の一部を判定条件に使っているので、捨ててしまわないように注意することにします。
いずれにしろ、2005年8月27日現在のHTMLの表記に異常に寄りかかってしまってるんですが、どうしようもないでしょうねぇ。って、これじゃ駄目でした。「キーワード」指定の場合と「業種」指定の場合で少なくとも変わってます。でも
<a href="/servlet/
しか指定しないと、50音順による絞込みのリンクも引き上げてしまうんですが。どうしたもんかと思ったんですが、ここまで来て何を汎用性を目指すことがあるか、と考えて無理やりはじくことにしました。
ほか、データだけを取り出すのに邪魔になりそうな何かを何となくもぎ取ってみました。
itowndown20050827_2.zip(250,566bytes) 実行ファイルとソースコードです。
「CSVでダウンロード」と名乗ってますが、ウソです。見たとおりタグのゴミが残ってます。もちろん画面上からはみ出ている場所にも大量に。
とりあえず基本的なシクミはできたと思います。ただ、パクリ元は「1000件を超えるデータも絞込みの何かを使ってダウンロードできます」と謳ってるんですが、そのあたりは未対応です。
また、今は暫定的にも程がある暫定処理で、簡単判定で落とせるタグを落としているだけですが、CSV形式にちゃんとやることと、電略記号(i タウンページ (Lite版):ご利用ガイド/電略記号の意味)についても、区別がつくようにしたいところです。
飽きましたが。
EOF | TOP |