Skip to main content

SE::Yandex: Yandex Search Results Scraper


Yandex Scraper Overview

The Yandex search results scraper rightfully belongs to the TOP-5 most demanded scrapers. One of the main competitive advantages of our scraper is its colossal performance. Thanks to the multi-threaded work of A-Parser, the processing speed of requests can reach 3000-7000 requests per minute, which on average allows you to receive up to 5000000 links per minute, while resource consumption is minimal, any office or home computer, as well as any VDS of the initial level, is suitable for work. Our scraper supports all Yandex search operators, which significantly expands the possibilities of scraping. Stability and uninterrupted scraping of results is ensured by recognizing captcha through AntiCaptcha or any other supporting their API (Anti-Captcha, RuCaptcha,, 2captcha and others).

Flexibility in settings allows you to specify the type of output (mobile/desktop), region, language, sorting of output by date and much more. The functionality of A-Parser allows you to save scraping settings for further use (presets), set a scraping schedule, and much more. You can use automatic query multiplication, substitution of subqueries from files, enumeration of alphanumeric combinations and lists to get the maximum possible number of results.

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

Yandex Scraper Use Cases

Yandex search results and position number

We get Yandex search results and the position number of the result. The result is saved in a csv file.

Parsing lite version of Yandex search results

This article provides an example of creating a scraper to collect information from the lite version of the Yandex search engine.

Parsing ads from Yandex

The preset parses the ad block in Yandex search results and saves the result in json format.

Assessing competition in Yandex

The preset determines the competition in the Yandex search engine by keywords.

Yandex cache scraper

The preset implements the ability to get links to the cache of the Yandex search engine.

Parsing only snippets from Yandex

This preset takes a word or phrase to search in Yandex as a parameter.

Scraped Data


  • Number of results for the query
  • Links, anchors and snippets from the output
  • Time of the first and last caching (only for desktop output)
  • List of related keywords
  • Determines whether Yandex considered the query a typo or not
  • Parsing the link to the cached page (only for desktop output)
  • A list of site icon names and their types, if any (including Turbo)
  • Upper, middle and lower ad blocks from all pages
    • Visible link, anchor, snippet and domain
    • Additional links and anchors
    • Metro station



  • Choice of output type: mobile/desktop
  • Support for all Yandex search operators (site:, lang:, etc.)
  • Scrapes the maximum number of results returned by Yandex - 25 pages with 50 items per page
  • Ability to search for related keywords
  • Supports selection of search region and domain
  • Ability to sort results by date
  • Scrapes page indexing time, with the ability to filter results by this parameter
  • Browser emulation option (allows for high parsing speed and low captcha consumption)
  • Ability to bypass captcha using the AntiCaptcha service or any other service that supports their API (it is recommended to include the is_russian parameter in the anti-gate settings)


The following scrapers are based on the Yandex scraper:

Usage options

  • Link collection - for A-Poster, XRumer, AllSubmitter, etc.
  • Competition evaluation for keywords
  • Backlink (mention) search for websites
  • Checking website indexing
  • Vulnerable website search
  • Any other options involving Yandex parsing in one form or another

Query examples

  • Queries must be specified as search phrases, just as if they were entered directly into the Yandex search form, for example:
окна Москва
lang:en windows Moscow

Query substitutions

You can use built-in macros to expand queries, for example, we want to get a very large database of forums, we will specify several main queries in different languages:


In the query format, we will specify a character rotation from a to zzzz, this method allows us to rotate the search output to the maximum and get a lot of new unique results:

$query {az:a:zzzz}

This macro will create 475254 additional queries for each original search query, which in total will give 4 x 475254 = 1901016 search queries, an impressive figure, but this is not a problem for A-Parser. At a speed of 2000 requests per minute, this task will be processed in just 16 hours.

Using operators

You can use search operators in the query format, so it will be automatically added to each query from your list:


Result output options

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

Result format:


Example result:

Result format:

[% FOREACH item IN p1.serp;    loop.count _ ' - ' _ _ ' - ' _ item.anchor _ ' - ' _ item.snippet _ "\n"; END %]

Example result:

1 - - <b>forum</b> - 
2 - - <div class=a11y-hidden>Веб-результат с дополнительными ссылками</div><b>Форум</b> – Arizona Role Play - Меню. Главная. <b>Форумы</b>. Новые сообщения. Что нового? Новые сообщения. Пользователи. Текущие посетители. <b>Форумы</b>. Вход. ... Статистика <b>форума</b>. Темы. 1,247,176. Сообщения. 5,225,340. Пользователи. 623,675.
3 - - <b>Форум</b> — Википедия - <b>Фо́рум</b> (лат. <b>forum</b> — арх. преддверие гробницы; площадка в давильне для подлежащего обработке винограда; рыночная площадь, городской рынок; торжище, центральная площадь):
4 - - Что такое <b>форум</b> и всё что с ним связано | Креативная... - Сегодня мы поговорим о том, что такое <b>форум</b> и обо всём, что с ним связано доступными и простыми словами. Каждый из нас стремиться найти такого человека, с кем можно было бы построить общение на общие для Вас интересы, поделиться своим опытом, дать совет. В современном мире, всё это стало возможно делать, не выходя из дома. Как раз одной из форм такого виртуального контакта и является веб-<b>форум</b>.
5 - - VimeWorld - <b>Форум</b> - <b>Форум</b> проекта идеальных игровых серверов Minecraft - VimeWorld...

The built-in tools.CSVLine utility allows you to create correct tabular documents ready for import into Excel or Google Sheets.

General result format:

[%  FOREACH i IN p1.serp;    tools.CSVline(, i.anchor, i.snippet); END  %]

File name:


Initial text:



The general result format uses the Template Toolkit template engine to output the serp array in a FOREACH loop.
What is the general result format?

In the results file name, simply change the file extension to csv.

To make the "Initial text" option available in the Task Editor, you need to activate "More options". In "Initial text", write the column names separated by commas and make the second row empty.

Output of advertising blocks

Result format:

$ads.format('$link - $anchor - $snippet\n')

Example result:;q=%D0%BA%D1%83%D0%BF%D0%B8%D1%82%D1%8C+%D0%B0%D0%B2%D0%B8%D0%B0%D0%B1%D0%B8%D0%BB%D0%B5%D1%82%D1%8B&amp;etext=2202.wBaB7RlytlP_PRaU6jPhHD2nHBNT_4gSF6009OyJEfpWjUPoA5WrSJAqCfap0m9ReXhoaGRlaWhmYmllemF2ZA.f04b1271668949ea17ffcafcb11c72c2ab6454c5 - <b>Купить</b> <b>авиабилет</b> до / - Мы предлагаем: <b>Купить</b> <b>авиабилет</b> до здесь. Суперпредложение! Спешите!;q=%D0%BA%D1%83%D0%BF%D0%B8%D1%82%D1%8C+%D0%B0%D0%B2%D0%B8%D0%B0%D0%B1%D0%B8%D0%BB%D0%B5%D1%82%D1%8B&amp;etext=2202.wBaB7RlytlP_PRaU6jPhHD2nHBNT_4gSF6009OyJEfpWjUPoA5WrSJAqCfap0m9ReXhoaGRlaWhmYmllemF2ZA.f04b1271668949ea17ffcafcb11c72c2ab6454c5 - <b>Купить</b> <b>авиабилет</b> онлайн на Туту.ру! Официальный сайт! - Билеты на самолет по низкой цене! Выгодные рейсы по всему миру! <b>Купить</b> билет онлайн!;q=%D0%BA%D1%83%D0%BF%D0%B8%D1%82%D1%8C+%D0%B0%D0%B2%D0%B8%D0%B0%D0%B1%D0%B8%D0%BB%D0%B5%D1%82%D1%8B&amp;etext=2202.wBaB7RlytlP_PRaU6jPhHD2nHBNT_4gSF6009OyJEfpWjUPoA5WrSJAqCfap0m9ReXhoaGRlaWhmYmllemF2ZA.f04b1271668949ea17ffcafcb11c72c2ab6454c5 - <b>Купить</b> <b>авиабилет</b> до / - Мы предлагаем: <b>Купить</b> <b>авиабилет</b> до здесь. Суперпредложение! Спешите!

Result format:


Example result:

<b>test</b> tanki online
tanki online
все <b>тесты</b> точка ру
i exam ru тестирование
<b>тест</b> скорости интернета
онлайн <b>тест</b> производительности пк
онлайн тестирование
my <b>test</b> student как узнать ответы

To automatically remove HTML tags in the result, use the Results Builder, select the $related array, and apply Remove HTML tags.

Keyword competition

Result format:

$query - $totalcount\n

Example result:

все тесты точка ру - 25000000
онлайн тестирование - 13000000
tanki online - 7000000
i exam ru тестирование - 27000000 - 238000000
онлайн тест производительности пк - 16000000
speedtest - 2000000
тест скорости интернета - 16000000
test tanki online - 19000000
my test student как узнать ответы - 16000000

Determining keywords with errors

Result format:

$query - $misspell\n

Example result:

онлайн тестирование - 0
тест скорости интернета - 0
онлийн тастирование - 1
тест скарости интрнета - 1

Query format:


Result format:

$query.orig - $totalcount\n

Example result: - 2 - 16 - 0 - 1000 - 499

To check link indexing, substitute the appropriate operator in the Query format: site:.

The result format is displayed as "source URL - number of pages in the index".

As a result, we get the addresses of pages and their number in the search engine index.

If the page is missing, the result will be: 0.

Saving in SQL format

Result format:

[%  FOREACH p1.serp;    "INSERT INTO serp VALUES('" _ query _ "', '";   link _ "', '";  anchor _ "')\n"; END  %]

Example of the result:

INSERT INTO serp VALUES('тест', '', 'Популярные онлайн <b>тесты</b>')
INSERT INTO serp VALUES('тест', '', 'Онлайн <b>тесты</b> c точным результатом от психологических...')
INSERT INTO serp VALUES('тест', '', '<b>Тесты</b> онлайн: лучшие, интересные и популярные')
INSERT INTO serp VALUES('тест', '', 'Интересные <b>тесты</b>. Пройти психологические интересные...')
INSERT INTO serp VALUES('тест', '', '<b>Тесты</b> онлайн | Online Test Pad')

Dumping results to JSON

Result format:

[%  data = {};  data.totalcount = p1.totalcount; data.links = []; FOREACH i IN p1.serp;    data.links.push(; END;  result = {}; result = data  %]

Initial text

[% result = {} %]

Final text

[% result.json %]

Example of the result:


To make the "Initial text" and "Final text" options available in the Task Editor, you need to activate "More options".

Results processing

A-Parser allows you to process results directly during parsing. In this section, we have provided the most popular cases for the Yandex scraper.

Add deduplication and select $serp.$ - Link in the drop-down list.

Download example

How to import an example into A-Parser



Add deduplication and select $serp.$ - Link in the drop-down list. Select the type of deduplication: Domain.

Download example

How to import an example into A-Parser



Extracting domains

Add Results Builder and select the source in the drop-down list: $p1.serp.$ - Link. Select the type: Extract Domain.

Download example

How to import an example into A-Parser



See also: Results Builder

Removing tags from anchors and snippets

Add Results Builder and select the source in the drop-down list: $p1.serp.$i.anchor - Anchor. Select the type: Remove HTML tags.

Add Results Builder again and select the source in the drop-down list: $p1.serp.$i.snippet - Snippet. Select the type: Remove HTML tags.

Download example

How to import an example into A-Parser



You can add Results Builder as many times as you need.

See also: Results Builder

Add a filter and select: $serp.$ - Link in the drop-down list. Select the type: Contains string. Then you need to write the filter attribute in "String", for example, if we want to keep only links that contain .com, then we write it in "String".

Download example

How to import an example into A-Parser



See also: Results filters

Possible settings

Parameter nameDefault valueDescription
DeviceModern desktop computer (Windows 10, Chrome 84)Select the type of output (Modern desktop computer (Windows 10, Chrome 84) / Mobile device (iPhone X, iOS 11))
Pages count5Number of pages to parse (from 1 to 25)
Sort serp by dateSort the output by date
Yandex domain for parsing, all domains are supported (.ru, .ua, .by, .kz,, .com). Starting from version 1.1.345, it is selected automatically depending on the selected region.
Region of serp (lr=)MoscowSelect the search region (parameter lr=)
Custom region IDPossibility to specify the id of a region that is not in the selection field. This option has priority over the Region of serp (lr=) option. It is necessary to specify the corresponding domain in Yandex domain.
Search sites from (rstr=)Not setSelect regional binding of sites (parameter rstr=)
LanguageAnyLanguage of search results (Russian, English, Belorussian, French, German, Indonesian, Kazakh, Tatar, Turkish, Ukrainian)
Parse not foundDetermines whether to parse the output if zero results are found for the search query and an output for another query is suggested
Not personalizedSearch personalization. More details here
Filter pagesModerate filterFiltering of results from unwanted content (Family search / Moderate filter / Do not filter)
Use AccountsWorking with existing accounts in the file files/SE-Yandex/accounts.txt. SE::Yandex::RegisterSE::Yandex::Register - Allows you to register accounts in Yandex
Remove bad accountsRemoving invalid accounts
AntiGate presetdefaultUse of captcha solving service. It is necessary to configure the parser in advance Util::AntiGateUtil::AntiGate - specify your access key and other parameters, and then select the created preset here
Disable HTTP2Determines support for HTTP2