(後日追記)
この投稿を作成した当時は下記方法で取得できましたが、
久しぶりに試してみると表示ができなくなってました。
有効ではなくなってしまったので取り急ぎ記載しておきます。
以前Googleの検索結果を取得した話の続き。
当時はGoogle APIを利用したのであるが、
そうではなく通常のGoogle検索をした時と同様の
検索結果や検索順位を取得してみたいと思う。
いまの仕事ではあまり多くないが、
特定のWebサイトの検索順位を日別で管理する場合には
役に立つのではないかと考えている。
検索順位チェックツールとして有名なのはGRCだが、
Windowsアプリではなく、やはりPHPとかで作成したWebプログラムを
CRONで定期実行をしてデータをDBに格納するほうが拡張性がある。
と言う訳で、まずはGoogleで検索。
とりあえずキーワードは何でも良いのだが一旦「yahoo」とする。
https://www.google.co.jp/#q=yahoo
検索結果のページのHTMLを表示させてみても
肝心の検索結果部分のテキストはHTMLに含まれていない。
なので、単純にこの検索結果ページのHTMLをスクレイピングしても何の意味もない。
こういった場合、別で受け取っているJSONデータが表示されている事は
素人の私でも知識としては一応知っている。
ただ、JSONだけをどうやって受け取るかが良く分からなかったのだが、
何かヒントがあるかとPingdom Toolsで検索結果のURLを洗ってみた。
すると取得に時間がかかっているURLがあるのでそれを叩いてみると
検索結果部分のJSONが取得できた。
下記はそのURLからJSONを取得して表示するだけのPHP。
http://516.jp/json_test_yahoo/index.php
TeraPadの80桁折り返しで770行目ぐらいから検索結果部分がある。
次はJSONデータをパースして、
まずは1位から10位のURL部分だけを取り出せるようにしたい。
続きをやりたいところだが、
他にやる事もあるので一旦ここまで。
また来週以降でやってみる。