Google Suggest(auto complete)で3回層までのキーワードを一気に取得(windows/php)
スポンサーリンク
サジェストキーワードを1つ1つ資料にまとめてたら2階層目ぐらいでめんどくさくなって死にそうになったので、ネットに転がっているソースを集めて、php スクリプトを作りました。
googleの結果の下のほうに出るサジェストと若干違っていますが、大体あっているので使えないことはないです。
世の中で回っている、webの無料のツールとgoodkeywordのほうがぶっちゃけいい情報でますので車輪の再開発してしまった感があります。
プログラム
<?php
$f = fopen("test2.csv", "w");
$mainKeyword = ["SEO対策","検索結果上位","なんじゃらほい"];
foreach ($mainKeyword as $keyword){
$url1 = "http://www.google.com/complete/search?hl=ja&output=toolbar&ie=utf_8&oe=utf_8&q=".urlencode($keyword);
$toplevel1 = simplexml_load_file($url1);
$layer1 = [];
foreach ($toplevel1->CompleteSuggestion as $completeSuggestion) {
$layer1[] = $completeSuggestion->suggestion->attributes()->data;
}
echo mb_convert_encoding($keyword, "SJIS")."\n";
foreach ($layer1 as $line1){
echo " - ".mb_convert_encoding($line1, "SJIS") ."\n";
$url2 = "http://www.google.com/complete/search?hl=ja&output=toolbar&ie=utf_8&oe=utf_8&q=".urlencode($line1);
$toplevel2 = simplexml_load_file($url2);
$layer2 = [];
foreach ($toplevel2->CompleteSuggestion as $completeSuggestion) {
$layer2[] = $completeSuggestion->suggestion->attributes()->data;
}
foreach ($layer2 as $line2) {
echo " -- ".mb_convert_encoding($line2, "SJIS") ."\n";
$url3 = "http://www.google.com/complete/search?hl=ja&output=toolbar&ie=utf_8&oe=utf_8&q=" . urlencode($line2);
$toplevel3 = simplexml_load_file($url3);
$layer3 = [];
foreach ($toplevel3->CompleteSuggestion as $completeSuggestion) {
$layer3[] = $completeSuggestion->suggestion->attributes()->data;
}
foreach ($layer3 as $entry){
echo " --- ".mb_convert_encoding($entry, "SJIS") ."\n";
fwrite( $f,mb_convert_encoding($keyword, "SJIS")."-".mb_convert_encoding($line1, "SJIS") ."-". mb_convert_encoding($line2, "SJIS") ."-".mb_convert_encoding($entry, "SJIS")."\n");
}
}
}
}
fclose($f);
やりたかったこと
メインとなるキーワードとその周辺を一括して取ってきたかったということです。
さらにそれぞれが メイン>メインのサジェスト(サブ)>サブのサジェスト のセットを複数パターン一気にとってくるという感じです。
これに、さらに月間検索数、SEO難易度、自社サイトの検索順位、競合の検索順位が一緒に取ればほんといいのに。


