PHPでgoogle検索結果をスクレイピングしようとしたら503エラーになったよ
どうもです。
私は合計すると30個くらいのサイト(ブログ)を持っているのですが
それぞれのサイトがどのくらいの規模なのかを
一括で把握できたらいいなぁ、と前々から思っていたんです。(´・ω・)
サイトの規模がそれぞれ分かれば
「あぁ、このサイトは記事が少ないからもっといろいろ書こうかな」とか
視覚的に把握しやすいんじゃないかな〜と・・・(´・ω・)
そこで、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のスクレイピング対策ですかね。。
もともと個人で使う用に作ったのですが、
やっぱりスクレイピングにはどのサイトも厳しいですね。(´・ω,’;,’;,’,
機会があれば再挑戦してみたいと思います。