Skip to main content

SE::Yandex::WordStat::ByRegion -

Yandex WordStat: ByRegion

Overview

Wordstat is a Yandex service designed to assess user interest in various topics and select keywords for SEO optimization and contextual advertising. In addition, with Wordstat Yandex, you can assess the seasonality and geographical dependence of search queries.

The Yandex WordStat by region scraper supports automatic query expansion, so you can be sure to get the maximum number of results from the output. Also, A-Parser can automatically navigate related queries to the specified depth.

A-Parser functionality allows you to save parsing settings for further use (presets), set a parsing schedule, and much more. You can use automatic query expansion, substitution of subqueries from files, enumeration of alphanumeric combinations and lists to obtain the maximum possible number of results.

Saving results is possible in the form and structure that you need, thanks to the built-in powerful templating engine Template Toolkit which allows you to apply additional logic to the results and output data in various formats, including JSON, SQL, and CSV.

Accounts

The SE::Yandex::WordStat::ByRegionSE::Yandex::WordStat::ByRegion scraper requires Yandex accounts to work. Accounts can be registered using the SE::Yandex::RegisterSE::Yandex::Register scraper or simply by adding existing accounts to the file files/SE-Yandex/accounts.txt in a supported format.

Alternatively, you can enable on-the-fly account registration.

Collected Data

  • Total number of impressions per query
  • Statistics of keywords by regions and cities:
  • Region/City
  • Number of views per month
  • Regional popularity in %

Capabilities

  • Support for automatic bypass of Smart captcha and the ability to bypass graphical captcha using the AntiCaptcha service or any other supporting their API
  • Choice of device type
  • Ability to choose the authentication method
  • Ability to register accounts on the fly
  • Supports working with extended account format and can answer a secret question (if the answer is in info). It also uses a saved proxy for authentication (if it is in info).

Use Cases

  • Estimating the amount of traffic for a keyword by region

Queries

As queries, you need to specify keywords, just as if you were entering them directly into the Wordstat search form, for example:

test

Output Results Examples

A-Parser supports flexible result formatting thanks to the built-in templating engine Template Toolkit, which allows it to output results in any form, as well as in a structured form, for example CSV or JSON

Default Output

Result format:

$query - Total views: $totalcount\nViews by regions:\n$regions.format('$region $count, $popularity%\n')\nViews by cities:\n$cities.format('$city $count, $popularity%\n')

The result displays the number of impressions per query, statistics of keywords by regions and cities, the number of views per month, and regional popularity:

test - Total views: 872855
Views by regions:
Москва и Московская область 147107, 85%
Центр 194716, 77%
Северо-Запад 55815, 70%
Юг 31759, 67%
Поволжье 86006, 66%
...
Views by cities:
Чита 2937, 113%
Санкт-Петербург 35713, 73%
Белгород 2737, 58%
Иваново 1773, 55%
Калуга 2196, 64%
Кострома 1166, 49%

Output in CSV Table

Result format:

[% FOREACH i IN regions;
tools.CSVline(query, i.popularity, i.region, i.count);
END %]

Example result:

"тест",88,"Москва и Московская область",1902795
"тест",96,"Центр",2992864
"тест",95,"Северо-Запад",926138
"тест",112,Юг,647140
"тест",124,"Поволжье",1927873
"тест",64,"Запад",60975
"тест",86,"Восток",427304

Saving in SQL Format

Result format:

[% FOREACH i IN regions;
"INSERT INTO regions VALUES('" _ query _ "', '"; i.popularity _ "', '"; i.count _ "', '"; i.region _ "')\n";
END %]

Example result:

INSERT INTO regions VALUES('тест', '88', '1902795', 'Москва и Московская область')
INSERT INTO regions VALUES('тест', '96', '2992864', 'Центр')
INSERT INTO regions VALUES('тест', '95', '926138', 'Северо-Запад')
INSERT INTO regions VALUES('тест', '112', '647140', 'Юг')
INSERT INTO regions VALUES('тест', '124', '1927873', 'Поволжье')
INSERT INTO regions VALUES('тест', '64', '60975', 'Запад')
INSERT INTO regions VALUES('тест', '86', '427304', 'Восток')
INSERT INTO regions VALUES('тест', '80', '89569', 'Юг')
INSERT INTO regions VALUES('тест', '75', '356560', 'Центр')
INSERT INTO regions VALUES('тест', '77', '34894', 'Север')

Dump results to JSON

Общий формат результата:

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

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

FOREACH item IN p1.regions;
obj.regions.push({
popularity = item.popularity
region = item.region
count = item.count
});
END;

obj.json %]

Начальный текст:

[

Конечный текст:

]

Example of the result:

[
{
"regions": [
{
"count": "1902795",
"popularity": 88,
"region": "Москва и Московская область"
},
{
"count": "2992864",
"popularity": 96,
"region": "Центр"
},
{
"count": "926138",
"popularity": 95,
"region": "Северо-Запад"
},
{
"count": "647140",
"popularity": 112,
"region": "Юг"
},
{

"count": "34894",
"popularity": 77,
"region": "Север"
},
],
"totalcount": "10837937"
}
]
tip

See also: Results Filters

Possible settings

ParameterDefault ValueDescription
AntiGate presetdefaultYou need to configure the scraper Util::AntiGateUtil::AntiGate in advance - specify your access key and other parameters, and then select the created preset here
AntiGate preset for LogindefaultAntiGate preset for login. You need to configure the scraper Util::AntiGateUtil::AntiGate with parameters in advance, and then select the created preset here
TypeAllSelect device type
AccountsOnly from "accounts.txt"Select the method of working with accounts: Always auto register - always automatically register accounts "on the fly", you need to select a configured preset in the SE::Yandex::Register preset parameter. Auto register if no more in "accounts.txt" - first use existing accounts from accounts.txt, and if they run out - use automatic registration "on the fly", for which you need to select a configured preset in the SE::Yandex::Register preset parameter. Only from "accounts.txt" - use only existing accounts from accounts.txt, and if they run out - wait for the specified time (parameter Wait new accounts in "accounts.txt") for new ones to appear
Wait new accounts in "accounts.txt"0Waiting time for new accounts to appear in accounts.txt
Remove bad accountsAlways, except wrong login/passwordAutomatic removal of "bad" accounts: Always - always remove. Always, except wrong login/password - remove always, except in cases when Yandex reported that the login/password is incorrect. The thing is that Yandex can give such a message when the IP is banned for a completely working account, so optionally you can leave such accounts for reuse. Never - never remove. Regardless of the selected option, accounts are not removed in case of proxy/browser errors
SE::Yandex::Register presetdefaultSelect the settings preset for SE::Yandex::RegisterSE::Yandex::Register
Authorization methodHTTPAuthorization method: HTTP - fast, not resource-intensive. Chrome - slow, resource-intensive, theoretically can extend the life of accounts
Chrome headlessIf the option is enabled, the browser will not be displayed
Use sessionsUse of sessions
Do not reset session if authorization passedDo not reset the session in case of errors if the scraper has already been authorized