2500個のキーワードがあって、googleでキーワードを検索したときのヒット件数のリストを作りたいと考えてます。
数が多いので、PHPやエクセルのマクロでプログラムを作成できればと思います。
質問は、googleのヒット件数を取得する方法でお知恵を貸してください。
サンプルプログラムがあると大変嬉しいです。
どうぞよろしくお願いします。
PHPスクリプトでつくってみました。
検索対象は日本語のみです。
<?php //このスクリプトはUTF-8で保存して下さい。 mb_internal_encoding('utf-8'); //検索したいキーワードを配列にしてください。 $keywords = array( 'はてな', '人力検索' ); $matches = array(); //ヒット件数の取得 foreach ($keywords as $key) { $pat = "/<div id=resultStats>([^<]+)<nobr>/ms"; $q = urlencode($key); $url = 'http://www.google.com/search?hl=ja&lr=lang_ja&q=' . $q; $matches[$key] = '取得失敗'; if (($str = file_get_contents($url)) != FALSE) { if (preg_match($pat, $str, $arr) > 0) { $v = preg_replace("/[^0-9]+/", '', $arr[1]); $matches[$key] = intval($v); } } } //結果表示 echo <<< EOD <html lang="ja"> <head> <meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> </head> <body> EOD; foreach ($matches as $key=>$val) { echo "{$key} = {$val}<br />\n"; } echo <<< EOD </body> </html> EOD; ?>
参考 「phpによるスクレイピング処理入門」
PHPスクリプトでつくってみました。
検索対象は日本語のみです。
<?php //このスクリプトはUTF-8で保存して下さい。 mb_internal_encoding('utf-8'); //検索したいキーワードを配列にしてください。 $keywords = array( 'はてな', '人力検索' ); $matches = array(); //ヒット件数の取得 foreach ($keywords as $key) { $pat = "/<div id=resultStats>([^<]+)<nobr>/ms"; $q = urlencode($key); $url = 'http://www.google.com/search?hl=ja&lr=lang_ja&q=' . $q; $matches[$key] = '取得失敗'; if (($str = file_get_contents($url)) != FALSE) { if (preg_match($pat, $str, $arr) > 0) { $v = preg_replace("/[^0-9]+/", '', $arr[1]); $matches[$key] = intval($v); } } } //結果表示 echo <<< EOD <html lang="ja"> <head> <meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> </head> <body> EOD; foreach ($matches as $key=>$val) { echo "{$key} = {$val}<br />\n"; } echo <<< EOD </body> </html> EOD; ?>
参考 「phpによるスクレイピング処理入門」
ありがとうございます。
さっそく活用させていただきます。
ありがとうございます。
さっそく活用させていただきます。