メインコンテンツへスキップ

SE::Google::Suggest - Googleサジェストスクレイパー

スクレイパーの概要

Googleのキーワード候補(サジェスト)を取得するスクレイパーです。SE::Google::Suggestを使用することで、Google検索のサジェストからキーワードベースを自動的に収集できます。SE::Google::Suggestを利用すれば、選択した国、言語、ドメインに基づいて、クエリに応じたGoogleサジェストを簡単かつ迅速にスクレイピングできます。

Googleサジェストスクレイパーは、SEOの主要な課題の1つである、拡張されたセマンティックカーネルの迅速かつ自動化された取得を解決します。Google検索サジェストを使用することで、最大限のフレーズを網羅することができ、Googleキーワードプランナースクレイパーである SE::Google::KeywordPlannerSE::Google::KeywordPlanner と組み合わせることで、より多くのオーガニックトラフィックを引き寄せるのに役立つ、最大限に包括的なセマンティクスを得ることができます。

A-Parserのマルチスレッド動作により、クエリ処理速度は毎分最大6000クエリに達し、平均して毎分最大45000-46000の結果を取得することが可能です。

スクレイパーの概要:動作速度

自動クエリ拡張、ファイルからのサブクエリ挿入、英数字の組み合わせやリストの総当たりを使用して、可能な限り多くの結果を取得できます。結果のフィルタリングを使用すると、除外キーワードを設定して不要なゴミを削除し、結果を即座にクリーンアップできます。

A-Parserの機能により、SE::Google::Suggestのスクレイピング設定を後で利用するために保存(プリセット)したり、スクレイピングのスケジュールを設定したりすることが可能です。

結果の保存は、内蔵の強力なテンプレートエンジン Template Toolkit により、必要な形式と構造で保存できます。これにより、結果に追加のロジックを適用したり、JSON、SQL、CSVを含むさまざまなフォーマットでデータを出力したりできます。

スクレイパーのユースケース

収集データ

  • クエリごとの結果数
  • クエリに対するサジェスト
  • サジェストのタイプ(0 - 人間によるもの、1 - 人工的なもの)
収集データ

機能

  • 検索対象の国、ドメイン、言語の選択をサポート
  • サジェスト収集に使用するソースの選択が可能(Client オプション)
  • スクレイピング結果からHTMLタグを削除する機能(Remove HTML tags オプション)

利用シーン

  • キーワードベースの収集

クエリ

クエリとして検索フレーズを指定する必要があります。例:

write essay
Football
Waterfall
Speak in english
Cats and dogs
forex
cheap essay

クエリの置換

内蔵マクロを使用して、ファイルからサブクエリを自動的に挿入できます。例えば、各クエリに別の単語リストを追加したい場合、いくつかのメインクエリを指定します:

essay
article
thesis

クエリ形式で、ファイル Keywords.txt から追加の単語を挿入するマクロを指定します。この方法により、クエリのバリエーションを大幅に増やすことができます:

{subs:Keywords} $query 

このマクロは、元の検索クエリごとにファイル内の単語数分だけ追加のクエリを作成します。結果として、マクロの動作により [元のクエリ数(ドメイン)] x [Keywordsファイル内のクエリ数] = [総クエリ数] となります。

例えば、Keywords.txt ファイルに以下が含まれている場合:

buy
cheap

最終的に、置換マクロは3つのメインクエリを6つに変換します:

buy essay
cheap essay
buy article
cheap article
buy thesis
cheap thesis

結果の出力例

A-Parserは、内蔵のテンプレートエンジン Template Toolkit により柔軟な結果フォーマットをサポートしており、任意の形式やCSV、JSONなどの構造化された形式で結果を出力できます。

サジェストリストのエクスポート

結果フォーマット:

$results.format('$suggest\n')

結果の例:

buy essays online
buy essay cheap
buy essay uk
buy essays online no plagiarism
buy essay papers
buy essay online reviews
buy essays reddit
buy essay friend

クエリ、クエリごとのサジェスト + サジェストタイプの出力

結果フォーマット:

$query:\n$results.format('$suggest - $type\n')

結果の例:

cheap essay:
cheap essay writing service - 1
cheap essay writing service uk - 1
cheap essay writing service canada - 1
cheap essay writing 24 - 1
cheap essays online - 1
cheap essay writing service reddit - 1
cheap essay writing service australia - 1
cheap essay writing service review - 1
buy essay:
buy essay online - 1
buy essay cheap - 1
buy essay uk - 1
buy essay papers - 1
buy essay online reviews - 1
buy essays reddit - 1
buy essay friend - 1
buy essay online uk - 1

CSVテーブルへの出力

内蔵ユーティリティ $tools.CSVLine を使用すると、ExcelやGoogleスプレッドシートにインポート可能な正しいテーブルドキュメントを作成できます。

全般的な結果フォーマット:

[% FOREACH i IN p1.results;
tools.CSVline(i.suggest);
END %]

ファイル名:

$datefile.format().csv

最初のテキスト:

サジェスト

ヒント

全般的な結果フォーマットでは、FOREACHループ内で $results 配列の要素を出力するために Template Toolkit テンプレートエンジン が使用されます。

結果のファイル名では、拡張子を csv に変更するだけです。

タスクエディタで「Prepend text」オプションを表示するには、「More options」を有効にする必要があります。 「Prepend text」にカンマ区切りで列名を記入し、2行目を空行にします。

キーワードの競合

SE::Googleと同様です。

SQL形式での保存

結果フォーマット:

[%  FOREACH results;    "INSERT INTO serp VALUES('" _ query _ "', '";   suggest _ "', '";   type _ "')\n"; END  %]

結果の例:

INSERT INTO serp VALUES('cheap essay', 'cheap essay writing service', '1')
INSERT INTO serp VALUES('cheap essay', 'cheap essay writing service uk', '1')
INSERT INTO serp VALUES('cheap essay', 'cheap essay writing service canada', '1')
INSERT INTO serp VALUES('cheap essay', 'cheap essay writing 24', '1')
INSERT INTO serp VALUES('buy essay', 'buy essay online', '1')
INSERT INTO serp VALUES('buy essay', 'buy essay cheap', '1')
INSERT INTO serp VALUES('buy essay', 'buy essay uk', '1')
INSERT INTO serp VALUES('buy essay', 'buy essay papers', '1')
...

JSONへの結果ダンプ

共通結果形式:

[% IF notFirst;
",\n";
ELSE;
notFirst = 1;
END;

obj = {};
obj.totalcount = p1.totalcount;
obj.suggests = [];

FOREACH item IN p1.results;
obj.suggests.push(item.suggest);
END;

obj.json %]

開始テキスト:

[

終了テキスト:

]

結果の例:

[{"suggests":["buy essay online","buy essay cheap","buy essay uk","buy essays online no plagiarism","buy essay papers","buy essay online reviews","buy essays reddit","buy essay friend"],"totalcount":8}]
ヒント

タスクエディタで「Prepend text」および「Append text」オプションを表示するには、「More options」を有効にする必要があります。

結果の処理

A-Parserではスクレイピング中に直接結果を処理できます。このセクションでは、SE::Google::Suggestの最も一般的なケースを紹介します。

指定レベルまでスクレイピング (Parse to level) オプション

このオプションは、取得した結果を指定した深さまでクエリキューに再投入するようスクレイパーに指示します。例:

  • レベル1が指定された場合、スクレイパーは元のクエリから得られたすべての結果をクエリに追加します。
  • レベル2が指定された場合、スクレイパーは元のクエリから得られたすべての結果 + レベル1のクエリから得られたすべての結果をクエリに追加します。
  • 以下同様です。

簡単に言えば、取得した結果をクエリキューに補充することで、より多くの結果をスクレイピングできるようにするものです。 結果には重複が含まれる可能性が高いため、スクレイパーが無駄な作業(同じ内容のスクレイピング)をしないよう、クエリ重複排除 (Unique queries) を有効にすることをお勧めします。

指定レベルまでスクレイピング オプション
サンプルをダウンロード

A-Parserへのプリセットインポート方法

eJx9VE1v2zAM/SsGkcMGZEF72MW3NFiGDlmd1c0pyEGIaVerLHmSnDQw/N9HKo7t
bEFvpvj4+PFIN+CFe3Nriw69g3jbQBW+IYb0Wxx/N6ZQGMdpXRTofPQlWgvrMPIm
UnhAFeG7KCuFMIWKHZY5trdCCZFhLmpFXw34U4WUwlReGu3IJzMyA8WKeenlIFRN
mPu7doQ/oLUyw0tAZkoh9QCG4/E4K0Li2d6U8EFoMcoBm/Qj6OsYihra3W4KNCXq
xS2NLQVPa1Ldz7rR9c5UHPDFkDOXYUSXGLKeRMlsk0x4ZO8sD0SfPs/8OzOILJM8
G6HOGXiuQ9aNln9CNc5bqQvCk2kluqWlrmPwGEj48XSpcAuTYAPR1CH+1zkGYm9r
nIKjapeCasl6Ry6UI4/0aIU3Nunkihsweq5UkGqABfqHWqqM9mCeU9BjF3gbkvzH
0fYdjlORHEdLNfQswXpIfg5RmVmZghrXhtpWspSebLcwtWZt7ujxDbHqx/bEsNJY
7NN0zF12uocKNWs/qDavhqerNq6UuX7cG53LIun26YKs9QsdXaIXhk+H+9K1UqSK
w+dhQ+auk4GNocB/gxchBd/C5brAG6Pcj/RcamUlbeBXLrCkSY6zdpR7odTmeTX2
wLBRfFQ87gidEydguMfC0B5RM+2uv/v+F9LcvP64aUmm3259RnNPjKU3Go4jDejS
27/f2JZm

結果のフィルタリング(除外キーワードの使用)

除外キーワードを使用することで、不要な結果を即座に排除できます。 同様に、フィルタを使用して特定の単語を含む結果のみを残すことも可能です。

結果のフィルタリング(除外キーワードの使用)
サンプルをダウンロード

A-Parserへのプリセットインポート方法

eJx9VE1vGjEQ/SvIQkojpSgcetkbQaFqRUMa4EQ4WOywceO1tx4vFBH+e2e83g9a
xG1n5r2ZNx/ro/AS3/HZAYJHkayOogjfIhHzxyT5am2mIUnmZZYB+t7n3hKhlytT
Ym9vXYriThTSITgmry5xCJHCVpaavo7CHwqg3Lbwyhpmq5TMkGIKO9Dk2UldEmZ4
f+rgd+CcSqEmpDaXyrRgsd/vB1koPNjYXFyhZp0aYjm/Bn3rQsF0oVulPTgK07S4
tWQVv7gnjJ2v7yJuUZEcGOtz6TdvnbwO0lT5D6U1ZFJ/YCGNQgZUMyLENYlb6yhh
FNEm7Ucxgyr+6aYfNb2+mptbcVqva+U4CQjmFMNBXH4TnMsdLGzVL7TuCVlPMg+V
UumBo3Wp24H/wxkkt0UNSF1V4ANpqy6N+h2UonfKZIQn0ynAiaP1JcJDSMLOQ61w
JfrB5rmWgf+z4ojEuxJo7qR2IklL2gS2UiNFFC1Beutm8e6So7BmpHW4uRYW0j+U
Sqd00KMtkb5F4mXI7L8cp6bDbila2t6RhlpoMB5mP1pSaqc2o76Npa61ypUnG8e2
NLyae3K+AxTN1J4YllsHTZUoLxanH7oAwwfSLm1UtK6zLs4Wc+7cWLNV2SweXY0s
zYJejZkZ27zQwG2ZUmtaCsJLeyAjjFtgoxX4L3kcSvA/Xb8Swlur8fu8klo4RQf4
hQXmNMhu1ZhyI7Vevky7EdEeFD8OPO4eIMqDYLiHzNIZUTOndfN+NW/g8eIrlhxP
tKZf+FyhuSfGko+Gg+FHHZ7+As4s2Yc=
ヒント

設定可能な項目

パラメータ名デフォルト値説明
ClientChrome omniboxサジェスト収集に使用するソースの選択 (Search page / Chrome omnibox)
Follow suggestsHumanParser to level 使用時にクエリに補充するサジェストタイプの選択 (All / Synthetic / Human)
Google domainwww.google.comドメインの選択
Search from countryGlobal検索を実行する国の選択
Interface languageEnglishインターフェース言語の選択
Remove HTML tagsHTMLタグの削除