Skip to main content

SE::Yandex::WordStat::ByRegion -

Yandex WordStat: ByRegion

Overview of the scraper

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

The Yandex WordStat by region scraper supports automatic query multiplication; you can be sure to receive the maximum number of results from the output. A-Parser can also automatically follow related queries to the specified depth.

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

Results can be saved in the form and structure that you need, thanks to the powerful built-in templater Template Toolkit which allows applying additional logic to the results and outputting data in various formats, including JSON, SQL and CSV.

Accounts

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

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

Collected data

  • Total number of impressions per query
  • Keyword statistics by region and city:
  • Region/City
  • Number of views per month
  • Regional popularity in %

Capabilities

  • Support for automatic Smart captcha bypass and the ability to bypass graphical captcha using the AntiCaptcha service or any other service that supports their API
  • Device type selection
  • Ability to select the authorization 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 the saved proxy (if any in info) for authorization.

Use cases

  • Assessing keyword traffic volume across regions

Queries

As queries, you should specify keywords, just as you would enter them directly into the Wordstat search form, for example:

test

Output results options

A-Parser supports flexible result formatting thanks to the built-in templater Template Toolkit, which allows it to output results in any form, as well as in structured formats, such as 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, keyword statistics by region and city, the number of views per month, and regional popularity:

test - Total views: 872855
Views by regions:
Moscow and Moscow region 147107, 85%
Center 194716, 77%
North-West 55815, 70%
South 31759, 67%
Volga region 86006, 66%
...
Views by cities:
Chita 2937, 113%
Saint Petersburg 35713, 73%
Belgorod 2737, 58%
Ivanovo 1773, 55%
Kaluga 2196, 64%
Kostroma 1166, 49%

Output in CSV table

Result format:

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

Result example:

"test",88,"Moscow and Moscow region",1902795
"test",96,"Center",2992864
"test",95,"North-West",926138
"test",112,South,647140
"test",124,"Volga region",1927873
"test",64,"West",60975
"test",86,"East",427304

Saving in SQL format

Result format:

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

Result example:

INSERT INTO regions VALUES('test', '88', '1902795', 'Moscow and Moscow Oblast')
INSERT INTO regions VALUES('test', '96', '2992864', 'Center')
INSERT INTO regions VALUES('test', '95', '926138', 'North-West')
INSERT INTO regions VALUES('test', '112', '647140', 'South')
INSERT INTO regions VALUES('test', '124', '1927873', 'Volga Region')
INSERT INTO regions VALUES('test', '64', '60975', 'West')
INSERT INTO regions VALUES('test', '86', '427304', 'East')
INSERT INTO regions VALUES('test', '80', '89569', 'South')
INSERT INTO regions VALUES('test', '75', '356560', 'Center')
INSERT INTO regions VALUES('test', '77', '34894', 'North')

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 %]

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

[

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

]

Result example:

[
{
"regions": [
{
"count": "1902795",
"popularity": 88,
"region": "Moscow and Moscow region"
},
{
"count": "2992864",
"popularity": 96,
"region": "Center"
},
{
"count": "926138",
"popularity": 95,
"region": "North-West"
},
{
"count": "647140",
"popularity": 112,
"region": "South"
},
{

"count": "34894",
"popularity": 77,
"region": "North"
},
],
"totalcount": "10837937"
}
]
tip

See also: Result Filters

Available settings

ParameterDefault valueDescription
AntiGate presetdefaultIt is necessary to pre-configure the Util::AntiGateUtil::AntiGate scraper - specify your access key and other parameters, and then select the created preset here
AntiGate preset for LogindefaultAntiGate preset for login. It is necessary to pre-configure the Util::AntiGateUtil::AntiGate scraper with parameters, and then select the created preset here
TypeAllDevice type selection
AccountsOnly from "accounts.txt"Selection of account usage method: Always auto register - always automatically register accounts "on the fly", requires selecting a configured preset in the SE::Yandex::Register preset parameter. Auto register if no more in "accounts.txt" - first uses existing accounts from accounts.txt, and if they run out, automatic registration "on the fly" is used, for which a configured preset must be selected in the SE::Yandex::Register preset parameter. Only from "accounts.txt" - only use existing accounts from accounts.txt, and if they run out, wait for the specified time (Wait new accounts in "accounts.txt" parameter) for new accounts 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 deletion of "bad" accounts: Always - always delete. Always, except wrong login/password - always delete, except when Yandex reports an incorrect login/password. The reason is that Yandex can issue such a message during an IP ban for a perfectly working account, so optionally, such accounts can be left for reuse. Never - never delete. Regardless of the selected option, accounts are not deleted for 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 prolong the life of accounts
Chrome headlessIf the option is enabled, the browser will not be displayed
Use sessionsSession usage
Do not reset session if authorization passedDo not reset the session on errors if the scraper has already authorized
Use Wordstat 2Use Wordstat 2
Wordstat 2 parse all table dataAllows immediate unloading of all 2000 results per query without passing through pagination