SE::Yandex::WordStat - WordStat(ワードスタット)スクレイパー。キーワードと表示回数統計の収集

スクレイパーの概要
Wordstat(ワードスタット)は、さまざまなトピックに対するユーザーの関心を評価し、SEO最適化やリスティング広告のためのキーワードを選定するために設計されたYandexのサービスです。さらに、Wordstat Yandexを使用することで、検索クエリの季節性や地域依存性を評価することも可能です。
Yandex WordStatキーワードスクレイパーは、クエリの自動展開をサポートしており、検索結果から最大数の結果を確実に取得できます。また、A-Parserは指定された深さまで関連クエリを自動的に辿ることができます。
A-Parserの機能により、スクレイピング設定を将来の使用のために保存(プリセット)したり、スクレイピングのスケジュールを設定したりすることが可能です。クエリの自動展開、ファイルからのサブクエリの置換、英数字の組み合わせやリストの総当たりを使用して、Yandex Wordstatのスクレイピング時に可能な限り多くの結果を取得できます。
組み込みの強力なテンプレートエンジン Template Toolkit により、結果に追加のロジックを適用し、JSON、SQL、CSVを含むさまざまな形式でデータを出力できるため、必要に応じた形式と構造で結果を保存できます。
スクレイパーのユースケース
🔗 Wordstatの深掘りスクレイピング
Yandex WordStatスクレイパーを使用した深掘りスクレイピング。
🔗 WordStatによる検索頻度の評価
WordStatによる検索頻度の評価
アカウント
スクレイパー
SE::Yandex::WordStat の動作にはYandexアカウントが必要です。アカウントはスクレイパー
SE::Yandex::Register を使用して登録するか、既存のアカウントを files/SE-Yandex/accounts.txt ファイルに サポートされている形式 で追加してください。
または、アカウントの「オンザフライ」登録を有効にすることもできます。
セッションによる認証を使用して動作させるには、データ行が次の形式である必要があります:
[email protected];MAQT78Z31Rinx4H;{"answer":"qmfhsxdcrk","proxy":"185.104.120.45:3128","session_id":"3:1748440908.5.0.1748440867459:ZXBxpg:47e4.1.2:1|2191075974.41.2.2:41.3:1748440908|3:10308131.797655.5pfkoRZWgLJGntKTlcUhYdysNfk"}
収集されるデータ
- 指定されたクエリの表示回数
- 統計情報の更新日
- 指定されたクエリに関連するすべてのキーワードのリストと月間表示回数
- ユーザーが検索したすべての追加キーワードのリストと月間表示回数

機能
- Wordstatが提供する最大の結果数(50アイテム×40ページ)をスクレイピングします
- 検索リージョンの選択をサポート(サブグループ付き)
- 見つかったキーワードを自動的にクエリに再投入可能(オプション Parse to level)
- 評価のために複数のリージョンを一度に選択可能
- Smart captchaの自動回避をサポートし、AntiCaptchaサービスやその他の対応APIを使用して画像キャプチャを回避可能
- デバイスタイプの選択
- 認証方法の選択
- アカウントの「オンザフライ」登録機能
- 以下との連携をサポート 拡張アカウント形式 秘密の質問に回答可能(回答が以下にある場合
info). また、認証に保存されたプロキシを使用(以下にある場合info).
利用シーン
- キーワードごとのトラフィック量の評価(頻度)
- 類似トピックの新しいキーワードの検索
- さまざまなトピックのキーワードの大規模なデータベース構築
- その他、何らかの形でのYandex.WordStatのスクレイピングを伴うあらゆるケース
クエリ
クエリには、Wordstatの検索フォームに直接入力する場合と同じようにキーワードを指定する必要があります。例:
okna moskva
"okna moskva"
!okna !moskva
結果の出力例
A-Parser 組み込みのテンプレートエンジンにより柔軟な結果フォーマットをサポートしており、Template Toolkit, 任意の形式やCSV、JSONなどの構造化された形式で結果を出力できます
デフォルト出力
結果フォーマット:
$query - $totalcount, updated: $updatedate\nkeywords:\n$keys.format('$key: $count\n')\nadditional keywords:\n$search.format('$key: $count\n')
結果には、元のクエリ、表示回数、統計更新日、関連キーワードのリストと月間表示回数、追加キーワードのリストと月間表示回数が表示されます:
!okna !moskva - 10368, updated: 16/05/2013
keywords:
okna moskva: 32367
plastikovye okna moskva: 8994
okna pvkh moskva: 4813
kupit okna moskva: 2561
okna tseny moskva: 1706
moskva rabota okna: 1547
vakansii okna moskva: 1187
derevyannye okna moskva: 1087
sluzhba +odnogo okna moskva: 1021
...
additional keywords:
proizvodstvo okon pvkh: 8512
okna rehau: 15686
okna salamander: 1576
okna kbe: 3798
okna kbe: 6089
okna kve: 3227
osteklenie balkonov: 83216
besedki: 471213
osteklenie lodzhiy: 26366
ofisnye peregorodki: 18740
montazh okon: 26223
CSVテーブルへの出力
結果フォーマット:
[% FOREACH i IN keys;
tools.CSVline(query, i. key, i.count);
END %]
結果の例:
parser saytov, parser saytov, 8055
parser saytov, besplatnyy parser saytov, 1122
parser saytov, parser ofitsialnyy sayt, 666
parser saytov, sayty oblachnyy parser, 507
parser saytov, parser email +s sayta, 477
parser saytov, parser sayta skachat, 434
parser saytov, parser adresov saytov, 390
parser saytov, parser saytov onlayn, 366
parser saytov, turbo parser saytov, 342
parser saytov, turbo parser ofitsialnyy sayt, 309
parser saytov, oblachnyy parser ofitsialnyy sayt, 308
parser saytov, parser saytov excel, 276
parser saytov, sliza parser sayt, 259
SQL形式での保存
結果フォーマット:
[% FOREACH i IN keys;
"INSERT INTO keys VALUES('" _ query _ "', '"; i.key _ "', '"; i.count _ "')\n";
END %]
結果の例:
INSERT INTO serp VALUES('test', 'test', '10837937')
INSERT INTO serp VALUES('test', 'test drayv', '1164338')
INSERT INTO serp VALUES('test', 'testo +dlya testa', '879980')
INSERT INTO serp VALUES('test', 'testy onlayn', '792560')
INSERT INTO serp VALUES('test', 'test drayv video', '550164')
INSERT INTO serp VALUES('test', 'retsept testa', '484489')
INSERT INTO serp VALUES('test', 'testy +s otvetami', '449401')
INSERT INTO serp VALUES('test', 'test 2014', '427602')
INSERT INTO serp VALUES('test', 'testy besplatno', '315144')
INSERT INTO serp VALUES('test', 'besplatnye testy', '315096')
INSERT INTO serp VALUES('test', 'testy +dlya devochek', '309355')
INSERT INTO serp VALUES('test', 'testy +po temam', '293917')
INSERT INTO serp VALUES('test', 'igry testy', '288989')
JSONへの結果ダンプ
共通結果形式:
[% IF notFirst;
",\n";
ELSE;
notFirst = 1;
END;
obj = {};
obj.updatedate = p1.updatedate;
obj.totalcount = p1.totalcount;
obj.keys = [];
FOREACH item IN p1.keys;
obj.keys.push({
key = item.key
count = item.count
});
END;
obj.json %]
開始テキスト:
[
終了テキスト:
]
結果の例:
[{
"updatedate": "12.03.2014",
"totalcount": "10837937",
"keys": [
{
"count": "10837937",
"key": "test"
},
{
"count": "1164338",
"key": "test drayv"
},
{
"count": "879980",
"key": "testo +dlya testa"
},
{
"count": "792560",
"key": "testy onlayn"
},
]
}]
こちらも参照: 結果フィルタ
設定
| パラメーター | デフォルト値 | 説明 |
|---|---|---|
| Pages count | 10 | スクレイピングするページ数 |
| Region | All | 検索リージョン |
| Remove + from keywords | ☐ | 見つかったクエリからプラス記号(+)を削除する |
| AntiGate preset | default | 事前にスクレイパー Util::AntiGate を設定(アクセスキーやその他のパラメーターを指定)し、ここで作成したプリセットを選択する必要があります。 |
| AntiGate preset for Login | default | ログイン用のAntiGateプリセット。事前にスクレイパー Util::AntiGate をパラメーター付きで設定し、ここで作成したプリセットを選択する必要があります。 |
| Type | All | デバイスタイプの選択 |
| Accounts | Only from "accounts.txt" | アカウントの操作方法の選択: Always auto register - 常に「オンザフライ」でアカウントを自動登録します。SE::Yandex::Register preset パラメーターで設定済みのプリセットを選択する必要があります。 Auto register if no more in "accounts.txt" - 最初に accounts.txt の既存アカウントを使用し、不足した場合は「オンザフライ」の自動登録を使用します。同様に SE::Yandex::Register preset でプリセットを選択する必要があります。 Only from "accounts.txt" - accounts.txt の既存アカウントのみを使用し、不足した場合は新しいアカウントが表示されるまで指定時間(Wait new accounts in "accounts.txt" パラメーター)待機します。 Only by session_id from "accounts.txt" - クッキーによる認証。 |
| Wait new accounts in "accounts.txt" | 0 | accounts.txt に新しいアカウントが表示されるまでの待機時間 |
| Remove bad accounts | Always, except wrong login/password | 「不良」アカウントの自動削除: Always - 常に削除。 Always, except wrong login/password - ログイン/パスワードが間違っているとYandexが報告した場合を除き、常に削除。YandexはIPブロック時に正常なアカウントに対してもこのメッセージを返すことがあるため、再利用のために残すオプションです。 Never - 削除しない。選択したオプションに関わらず、プロキシ/ブラウザのエラー時にはアカウントは削除されません |
| SE::Yandex::Register preset | default | SE::Yandex::Register の設定プリセットの選択 |
| Authorization method | HTTP | 認証方法: HTTP - 高速、低リソース。 Chrome - 低速、高リソース、理論的にアカウントの寿命を延ばす可能性があります |
| Chrome headless | ☑ | このオプションが有効な場合、ブラウザは表示されません |
| Use sessions | ☑ | セッションの使用 |
| Do not reset session if authorization passed | ☑ | スクレイパーが既に認証されている場合、エラー時にセッションをリセットしない |
| Use Wordstat 2 | ☐ | Wordstat 2 の使用 |
| Wordstat 2 parse all table data | ☑ | ページネーションを経由せずに、クエリごとに全2000件の結果を即座に取得できます |

