"Diary" インターネットさんへの恩返し

いつもソースコードコピペばかりなので,みなさまへ少しばかりの恩返しを

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);

出力イメージ

絵的にかくとこんな感じ。さらにこれにもう1階層下のものも出力されます。
f:id:azumami:20171220165458p:plain

Excelはこんな感じででてくるので、区切り指定「-」でセルに分けてください。
f:id:azumami:20171220165658p:plain

やりたかったこと

メインとなるキーワードとその周辺を一括して取ってきたかったということです。
さらにそれぞれが メイン>メインのサジェスト(サブ)>サブのサジェスト のセットを複数パターン一気にとってくるという感じです。
これに、さらに月間検索数、SEO難易度、自社サイトの検索順位、競合の検索順位が一緒に取ればほんといいのに。
f:id:azumami:20171220165246p:plain