PHPでgoogle検索結果をスクレイピングしようとしたら503エラーになったよ

どうもです。

私は合計すると30個くらいのサイト(ブログ)を持っているのですが
それぞれのサイトがどのくらいの規模なのかを
一括で把握できたらいいなぁ、と前々から思っていたんです。(´・ω・)

<イメージ図>
スクリーンショット 2015-04-22 22.03.18
↑なんかこんなん

サイトの規模がそれぞれ分かれば
「あぁ、このサイトは記事が少ないからもっといろいろ書こうかな」とか
視覚的に把握しやすいんじゃないかな〜と・・・(´・ω・
)


そこで、googleのsite:検索機能を利用して
スクレイピングする方法を試してみることにしました。

googleで「site:http://ほにゃらら〜」と検索すると
インデックスされているページの件数が表示されるのですが
その機能を利用して各サイトのページ数を取得する作戦です。

スクレイピングには下記を使用しました。
使いやすかったです、ありがとうございました。
PHP Simple HTML DOM Parser


テキストエリアにページ数を調査したいURLを羅列し
それを1行ずつ配列に分解して
順番にgoogleのsite:検索をかけました。

URLはこんなかんじで指定します。
https://www.google.co.jp/search?q=site%3Ahttp%3A%2F%2F[ここにURL]%2F&ie=utf-8&oe=utf-8&hl=ja

find(‘#resultStats’, 0);このように指定することで
各URLごとの「約 * 件」という表示を取得してきてくれます。

あとはこの「約 * 件」を数字だけ引っこ抜いて
jqueryでおしゃれなグラフ化して終わり!
そんな感じでサクサクすすめていたのですが・・・


何度かスクレイピングを試みていると
503エラーを出力してストップしてしまいました。
URLの件数としては10件くらいでした。(´・ω・`)
そこまで件数は多くなかったはず・・・。

解決方法を探しましたが原因&対策は不明でした。
googleのスクレイピング対策ですかね。。

もともと個人で使う用に作ったのですが、
やっぱりスクレイピングにはどのサイトも厳しいですね。(´・ω,’;,’;,’,
機会があれば再挑戦してみたいと思います。