googleのキーワード検索でヒット件数を取得できる方法について教えてください。


2500個のキーワードがあって、googleでキーワードを検索したときのヒット件数のリストを作りたいと考えてます。
数が多いので、PHPやエクセルのマクロでプログラムを作成できればと思います。

質問は、googleのヒット件数を取得する方法でお知恵を貸してください。
サンプルプログラムがあると大変嬉しいです。

どうぞよろしくお願いします。

回答の条件
  • URL必須
  • 1人2回まで
  • 登録:2011/04/27 16:10:22
  • 終了:2011/05/02 07:21:11

ベストアンサー

id:Galapagos No.1

Galapagos回答回数963ベストアンサー獲得回数892011/04/27 17:58:16

ポイント70pt

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によるスクレイピング処理入門

id:jar2

ありがとうございます。

さっそく活用させていただきます。

2011/04/28 07:30:11

その他の回答(1件)

id:Galapagos No.1

Galapagos回答回数963ベストアンサー獲得回数892011/04/27 17:58:16ここでベストアンサー

ポイント70pt

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によるスクレイピング処理入門

id:jar2

ありがとうございます。

さっそく活用させていただきます。

2011/04/28 07:30:11

コメントはまだありません

この質問への反応(ブックマークコメント)

「あの人に答えてほしい」「この質問はあの人が答えられそう」というときに、回答リクエストを送ってみてましょう。

これ以上回答リクエストを送信することはできません。制限について

絞り込み :
はてなココの「ともだち」を表示します。
回答リクエストを送信したユーザーはいません