SE::Yandex::Suggest - Yandex検索候補スクレイパー
スクレイパーの概要
Yandexのキーワードサジェストを抽出するスクレイパーです。SE::Yandex::Suggestを使用することで、Yandex検索エンジンのサジェストからキーワードベースを自動的に収集できます。SE::Yandex::Suggestを利用すれば、指定した地域に基づいたYandexのサジェストを簡単かつ迅速にスクレイピングすることが可能です。
Yandexサジェストスクレイパーは、SEOの主要な課題の1つである、拡張されたセマンティックコアの迅速かつ自動化された取得を解決します。Google検索サジェストは最大限のフレーズをカバーすることを可能にし、Yandexキーワードスクレイパーである
SE::Yandex::WordStat と組み合わせることで、より多くのオーガニックトラフィックを引き寄せるのに役立つ、最大限に包括的なセマンティクスを得ることができます。
A-Parserのマルチスレッド動作により、リクエスト処理速度は最大で毎分 5700 リクエストに達し、平均して毎分 17000-18000 件の結果を取得できます。

クエリの自動増殖、ファイルからのサブクエリの置換、英数字の組み合わせやリストの総当たりを使用して、最大限の結果を取得できます。結果のフィルタリングを使用すれば、不要なゴミを(除外キーワードを使用して)即座に削除し、結果をクリーンにできます。
A-Parserの機能により、SE::Yandex::Suggestの設定を将来の使用のために保存(プリセット)したり、スクレイピングのスケジュールを設定したりすることが可能です。
強力な組み込みテンプレートエンジン Template Toolkit により、結果に必要なロジックを適用し、JSON、SQL、CSV を含む様々な形式で、必要な構造のままデータを保存できます。
収集データ
- クエリごとの結果数
- クエリのサジェスト
- 2番目のリクエスト方法を選択した場合、追加データとサジェストタイプも収集されます

ユースケース
- キーワードベースの収集
クエリ
クエリとして検索フレーズを指定する必要があります。例:
フォレックス
レポートの書き方
オンライン レポート
モスクワで車を買う
ニュース
クエリの置換
組み込みマクロを使用して、ファイルからサブクエリを自動的に置換できます。例えば、各クエリに他の単語のリストを追加したい場合、いくつかのメインクエリを指定します:
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')
結果の例:
オンライン レポート 無料
オンライン レポート 注文
オンライン レポート 無料 ダウンロード
オンライン レポート ダウンロード
オンライン レポート 作成
オンライン レポート 作る
オンライン レポート 探す
オンライン レポート 無料 作成
オンライン レポート 注文する
クエリ、見つかったサジェスト総数、クエリごとのサジェストの出力
結果フォーマット:
$query - $totalcount:\n$results.format('$suggest\n')
結果の例:
オンライン レポート - 10:
オンライン レポート
オンライン レポート 無料
オンライン レポート 注文
オンライン レポート 無料 ダウンロード
オンライン レポート ダウンロード
オンライン レポート 作成
オンライン レポート 作る
オンライン レポート 探す
オンライン レポート 無料 作成
オンライン レポート 注文する
CSVテーブルへの出力
組み込みユーティリティ $tools.CSVLine を使用すると、ExcelやGoogleスプレッドシートにインポート可能な正しい形式のテーブルドキュメントを作成できます。
結果フォーマット:
[% FOREACH i IN results;
tools.CSVline(i.suggest);
END %]
ファイル名:
$datefile.format().csv
冒頭のテキスト:
サジェスト
結果の全般設定では、FOREACHループ内で results 配列の suggest 要素を出力するために Template Toolkit テンプレートエンジン が適用されます。
結果のファイル名で、拡張子を csv に変更するだけです。
タスクエディタで「Prepend text」オプションを表示するには、「More options」を有効にする必要があります。 「Prepend text」にカンマ区切りでカラム名を記入し、2行目を空行にします。
キーワードの競合
SQL形式での保存
結果フォーマット:
[% FOREACH results;
"INSERT INTO serp VALUES('" _ query _ "', '"; suggest _ "')\n";
END %]
結果の例:
INSERT INTO serp VALUES('レポート オンライン', 'レポート オンライン')
INSERT INTO serp VALUES('レポート オンライン', 'レポート オンライン 無料')
INSERT INTO serp VALUES('レポート オンライン', 'レポート オンライン 注文')
INSERT INTO serp VALUES('レポート オンライン', 'レポート オンライン 無料 ダウンロード')
INSERT INTO serp VALUES('レポート オンライン', 'レポート オンライン ダウンロード')
INSERT INTO serp VALUES('レポート オンライン', 'レポート オンライン 作成')
INSERT INTO serp VALUES('レポート オンライン', 'レポート オンライン 作る')
INSERT INTO serp VALUES('レポート オンライン', 'レポート オンライン 検索')
...
JSONへの結果ダンプ
共通結果形式:
[% IF notFirst;
",\n";
ELSE;
notFirst = 1;
END;
obj = {};
obj.totalcount = p1.totalcount;
obj.suggests = [];
FOREACH item IN p1.serp;
obj.suggests.push(item.suggest);
END;
obj.json %]
開始テキスト:
[
終了テキスト:
]
結果の例:
[{"suggests":["オンライン レポート","オンライン レポート 無料","オンライン レポート 注文","オンライン レポート 無料 ダウンロード","オンライン レポート ダウンロード","オンライン レポート 作成","オンライン レポート 作る","オンライン レポート 探す","オンライン レポート 無料 作成","オンライン レポート 注文する"],"totalcount":10}]
タスクエディタで「Prepend text」および「Append text」オプションを表示するには、「More options」を有効にする必要があります。
結果の処理
A-Parserではスクレイピング中に直接結果を処理できます。このセクションでは、SE::Yandex::Suggestスクレイパーの最も一般的なケースを紹介します。
指定レベルまでスクレイピング (Parse to level) オプション
このオプションは、取得した結果を指定した深さまでクエリキューに再投入するようスクレイパーに指示します。例:
- レベル1が指定された場合、スクレイパーは元のクエリから取得したすべての結果をクエリに追加します。
- レベル2が指定された場合、スクレイパーは元のクエリから取得したすべての結果 + レベル1のクエリから取得したすべての結果をクエリに追加します。
- 以下同様。
簡単に言えば、取得した結果をクエリキューに代入することで、より多くの結果をスクレイピングできるようにするものです。 結果には重複が含まれる可能性が高いため、スクレイパーが同じものを何度もスクレイピングしないよう、クエリ重複排除 (Unique queries) を有効にすることをお勧めします。

例をダウンロード
eJx1VFtv2jAU/iuVhdRVQggKfVjeKCrSJtZ0pX2YgAe3Pom8OrZnO6woyn/vsRPi
wLoXy+f2nct37Io4at/sgwELzpJkUxEd7iQhDDJaCkeGRFNjwXjzhqzvkuQXlQze
k2Rd5jlY79H5VsQdNGC02oMxnAEaOUM5U6agDrEbyD0VpXcbNBo7auxfLge2Ad1u
5eUVqXuA2nEl7REv1LSCPYiINhnX/y9AmOh4PZnWu92QtMmXIbevRk9Gbf+dcU33
8KR8B1xAVC9RuqdF6IFRB956bOJq5N49AmWM+6KpaDL4Ccasz5L/CTOQCn3xajjY
pVEFqhwEAK88HKvbkEGQCUKUIfZnE0OSjAoLQ2Kx1CXFQti5hTsw1CmTtkNMKqLk
XIgwwOgW8G9LLhjSPc8w6Fsb+LlL+g9G3bXXT4VU/DVYQ4cSpNv0R4xiaqXy4zAE
L7hD2S5UKT0xY1S+AehuZvferVAGujQtcpsdN1qD9LxHyuY6qk7aOKHlVPmqZMbz
tN2lo2cpn/DZpHKhCi3A9yVLIZAWC49xPea2pcELscDz4EVIcfLgnFLCfl83pWrD
cf1ufIEFTrKftYV8pUI8P676Fh9ondKpvDPmjL6wGGRbjmezsT+nN+E+690bfThn
1+F8uQgqCCcL50t0mn5t9TIwewHW0gPxlTnIFe4szq3edT9J999Un/4nSVXjRvy2
D423H5/3RR3yYJFufOr1Bxh5omw=
結果のフィルタリング(除外キーワードの使用)
除外キーワードを使用することで、不要な結果を即座に取り除くことができます。 同様に、フィルタを使用して特定の単語を含む結果のみを残すことも可能です。

例をダウンロード
eJx1VN9vGjEM/leqCKmrVCEoIG33RlGRNrHSFfowAQ+BMyxrLrklOVbE7n+f44S7
g3UvUWx/tr/4R47McftqnwxYcJYliyPL6c4SlsKWF9KxW5ZzY8F484LNHpLkO1cp
vCXJrNjtwHpEhT0yd8gBvfUejBEpoFGkKG+1ybjD2CHknsvCw1pBY9vB/uG6ZUPQ
5VJd37CyETB3Qit7ikecJrAHWUfrdsr/E5CmBt51ew3kVkgH3hrZJYt488kiHba6
jbh5cDKgtEPGmx+N1yyLTr/f92fvI51r0mzovvlDQpeEAd07DWi4rwnUu2sY+rVD
z78mFAKzsXK1OpG2Y6qfr2jebcceVsYZ38Nch6dCrR6j9Mgz6kPKHXjrqRE3bffm
I/A0FT4flyGDn4I664sSv+jlSiMWr0aAHRudocoBBfDKw4ndgrVI9uUsyPdb8GHJ
lksLWG+kOuZIJL20CCw+d9pM4yAkR6bVUEoaghpG8e8LIVMc2eEWnT5Hx/ch039i
lNXzmqlwnH4b5FBFIel++rX2SvVE707FkCITDmU70oXyjemg8hUgr2r26GGZNlCl
iZFjdtzKHJSf3bplw7xWnT3jrC3nyo1WW7Gbxn04IQs1x9WfqpHOcgn+XaqQEtti
4bkej6GNbfBCTfDSeUQpzj4Np7W0X2aBam4Ejt/AE8ywks2sMeSGS/nyPGlavKN1
Op+qB2Mu2keDwRpLNGjsXnO56OzTPvXXV2GJ6EzrBY279ynqFXX2CqzlB+aZOdhp
nFmsW7mqfsPqzzy++ycmxxIn4qd9CmhfPo9FHfbB0gJ3y7/kMN7o
参照:結果フィルタ
利用可能な設定
| パラメータ名 | デフォルト値 | 説明 |
|---|---|---|
| Region | ロシア | 検索を実行する地域の選択 |
| Request method | Method 1 | リクエスト方法: Method 1 - 従来の方法; Method 2 - 新しい方法。すべての拡張サジェスト(広告、ファクト、サイトリンク)を収集できます |