Парсер яндекс


Приветствую всех читателей!

Я начал заниматься SEO недавно, и сразу же столкнулся с задачей определения позиций продвигаемых сайтов по ключевым словам в поисковиках. Задача тривиальная и решается на ура различным ПО, которое у всех SEO-специалистов на устах: Semonitor, AllSubmitter, etc. Помимо проприетарности, которой попахивает от всех подобного рода программ, в них есть, как это не парадоксально, ряд технических моментов, из-за которых хочется выбросить компьютер в окно.
Я бы не прочь купить Semonitor, но попользовав демо-версию, решил от этой идеи отказаться — на оф.сайте программы доступная для скачивания версия у меня глючила, требовала обновить себя, а после выпрошенного у меня обновления и вовсе отказывалась заниматься анализом позиций. Самому настроить, как Вы понимаете, нельзя.
AllSubmitter в этом плане получше, позволяет даже кастомизировать регулярные выражения для поисковиков, что вроде как делает этот софт устойчивым к смене формата выдачи, однако и с ним не все слава богу — когда 18.08.2008г. Яндекс вдруг изменил формат выдачи результатов поиска, вместе с тем поменяв и URL ссылок (возможно, эксперименты с вводом учета переходов, подробнее об этом писалось здесь), то и AllSub оказался бессилен. Правда, на следующий день Яндекс снова вернулся к старому формату выдачи, но прецедент, тем не менее, произошел.


Я тогда ради интереса изобретал велосипед: решил написать анализатор позиций, причем на PHP. У меня не было цели дойти до production’а, просто хотелось прочувствовать, как работают всякие там Semonitor’ы и Allsubmitter’ы. А потому, написав классы для парсинга Яши, Гугла и Рамблера, потестив и убедившись, что все пашет, удовлетворенно забыл, поскольку был AllSubmitter, и огород городить было незачем, было предостаточно и других задач.

Постановка задачи

Когда на Хабре написали про PHP-класс для работы с Яндекс.XML и я обильно прокомментировался по этому поводу, то по наличию плюсов в карму понял, что тема неплоха для оформления в статью, тем более что возможность появилась — я вылез из минусов. И хотя речь там шла немного о другом — об организации поиска по сайту, используя Yandex.XML, задача анализа позиций сайта по ключевым словам и фразам пересекается с первой. Итак, моя задача:
создать анализатор позиций сайтов в выдаче поисковых систем (пока Яндекса)

Решение

Тут нету ничего сложного.

Во-первых,

все необходимое для получения результатов поиска передается через GET-параметры, а именно:


  • text — текст поискового запроса. URL-кодированный.
  • p — номер страницы выдачи (p=0, 1, 2…). Without comments
  • numdoc — число выдаваемых результатов на страницу(numdoc=10, 20, 30, 50; допустимы только эти значения и никакие более). Для анализа позиций сайта по ключевым словам лучше всего юзать наибольшее значение, т.к. явное уменьшение нагрузки на сервер и, как следствие — меньше подозрений, что «Я, робот»

Шаблон строки запроса:
yandex.ru/yandsearch?text=[KEYWORD]&p=[PAGE_NUMBER]&numdoc=[RESULTS_ON_PAGE]

Во-вторых,

Выдача Яндекса подвергается разбору на нужные нам составляющие, путем прогона через регулярное выражение вида:

#<li>.*<a[^>]*tabindex[^>]*onclick[^>]*=[^>]*"[^>]*"[^>]*href="([^<>"]+)"[^>]*>(.+)</a>.*</li>#Ui

Вот таким путем:

  1. preg_match_all(РЕГВЫР, HTML_ВЫДАЧИ, МАССИВ_РЕЗУЛЬТАТОВ, PREG_SET_ORDER);

* This source code was highlighted with Source Code Highlighter.

В результате чего получается массив (в нем numdoc элементов) массивов (3 элемента в подмассиве: html с одним результатом выдачи, url найденной страницы выдачи, ее заголовок).

В итоге,

Вот по какой схеме я работаю, чтобы найти сайт в Яндексе по определенному запросу (поиск до первого вхождения):


  1. получаю первую страницу с выдачей
  2. если это не «страница недоверия» Яндекса с капчей — прогоняю через регвыр, перебираю результаты в поиске нужного.
  3. если нахожу, возвращаю результат — номер позиции страницы в выдаче, не нахожу — получаю следующую страницу и возвращаюсь к п.2, подождав секунды 3-5

В качестве параметров к процессу анализа у меня имеется:

  • resultsLimit — ограничение по глубине поиска, по умолчанию
    люблю ставить 200
  • url — имя хоста, который ищем в выдаче. Учитывается любая страница с этого хоста
  • keyword — запрос к поисковику.

Реализовано

это посредством иерархии классов (чтобы при надобности легко расширять функциональность анализатора на другие поисковики).

Абстрактный класс — SomeAnalyzer:

  1. abstract class SomeAnalyzer{
  2.    
  3.    //// ИНТЕРФЕЙС
  4.    
  5.    // функция анализа
  6.    public abstract function analyzeThis($url);

  7.    
  8.    // получение имени хоста из url (parse_url с дополнительным функционалом, поскольку убедился что просто parse_url не всегда почему-то работает, когда url слишком неудобочитаемый)
  9.    public function getHost($url){
  10.       $url=@parse_url($url);
  11.       if($url[‘path’] && !$url[‘host’])
  12.          $url[‘host’]=$url[‘path’];
  13.       $url[‘host’]=ereg_replace("/.*$", "", $url[‘host’]);
  14.       $url[‘host’]=ereg_replace("^www.", "", $url[‘host’]);
  15.       
  16.       return $url[‘host’];

  17.    }
  18.    
  19.    //// РЕАЛИЗАЦИЯ
  20.    
  21.    // функция сравнения 2-х url на предмет принадлежности к одному хосту
  22.    protected function compareURL($url1, $url2){
  23.       $url1=$this->getHost($url1);
  24.       $url2=$this->getHost($url2);
  25.       
  26.       return(strtoupper($url1[‘host’])==strtoupper($url2[‘host’])? true: false);
  27.    }
  28. }

* This source code was highlighted with Source Code Highlighter.

Класс анализатора выдачи Яндекса:

  1. class YandexAnalyzer extends SomeAnalyzer{
  2.    
  3.    //// ИНТЕРФЕЙС
  4.    
  5.    // настройки

  6.    public $resultsLimit=200; // лимит результатов выдачи
  7.    public $url;
  8.    public $keyword;
  9.    
  10.    public $resultsOnPage=50; // можно только 10, 20, 30, 50
  11.    
  12.    // функция анализа
  13.    public function analyzeThis($url, $keyword=»){
  14.       $this->url=$url;
  15.       $this->keyword=$keyword;
  16.       $x=0;
  17.       while($x*$this->resultsOnPage<=$this->resultsLimit-1){
  18.          if($results=$this->analyzePage(str_replace(array("r", "n", "t"), », $this->downloadPage($x)))){

  19.             $results[0]=$x*$this->resultsOnPage+$results[0];
  20.             return $results;
  21.          }
  22.          $x++;
  23.          sleep(rand(3, 5));
  24.       }
  25.       return false;
  26.    }
  27.    
  28.    //// РЕАЛИЗАЦИЯ
  29.    
  30.    protected $regexpParseResults=‘#<li>.*<a[^>]*tabindex[^>]*onclick[^>]*=[^>]*"[^>]*"[^>]*href="([^<>"]+)"[^>]*>(.+)</a>.*</li>#Ui’;
  31.    protected $urlMask=‘http://yandex.ru/yandsearch?text=[KEYWORD]&p=[PAGE_NUMBER]&numdoc=[RESULTS_ON_PAGE]’;
  32.    
  33.    protected function downloadPage($pageNumber){

  34.       $mask=str_replace(‘[KEYWORD]’, urlencode($this->keyword), $this->urlMask);
  35.       $mask=str_replace(‘[PAGE_NUMBER]’, $pageNumber, $mask);
  36.       $mask=str_replace(‘[RESULTS_ON_PAGE]’, $this->resultsOnPage, $mask);
  37.       
  38.       return file_get_contents($mask);
  39.    }
  40.    
  41.    protected function analyzePage($content){
  42.       
  43.       if(preg_match_all($this->regexpParseResults, $content, $matches, PREG_SET_ORDER)!==false){
  44.          if(count($matches)<=0)
  45.             deb(‘<br /><span style=«color: red;»>Не найдено вхождений или ошибка парсера: возможно гугл подозревает, что Вы робот!</span>’);

  46.          else
  47.             foreach($matches as $num=>$match){
  48.                if($this->compareURL($match[1], $this->url))
  49.                   return array($num+1, $match[1], $match[2]);
  50.             }
  51.       }
  52.       else deb(‘<span style=«color: red;»>Не найдено вхождений или ошибка парсера: возможно йандекс подозревает, что Вы робот!</span>’);
  53.       
  54.       return false;
  55.    }
  56. }

* This source code was highlighted with Source Code Highlighter.


Хочу обратить Ваше внимание на один момент: не знаю, что это было 18 числа этого месяца сего года, но у Яндекса поменялся формат выдачи, пришлось менять регулярки и дописывать классы, однако уже 19 числа все с изумлением наблюдали то, как яндексоиды возвратили все как было. И, почему бы и нет, это может повториться, потому привожу список изменений и дополнений в класс YandexAnalyzer, которые нужно будет сделать, если вдруг формат выдачи станет как 18.08.2008г.:

  • строка №30 теперь имеет вид:

    1. protected $regexpParseResults=‘#<li>.*<a[^>]*tabindex[^>]*href="([^<>"]+)"[^>]*>(.+)</a>.*</li>#Ui’;

    * This source code was highlighted with Source Code Highlighter.

  • строка №48 также поменялась:

    1. if($this->compareURL($this->getUrlFromYa($match[1]), $this->url))

    * This source code was highlighted with Source Code Highlighter.

  • Вы наверно заметили, что в строке №48 используется теперь функция getUrlFromYa? Мало того что поменялся формат выдачи, ссылки стали не прямые, посему понадобилась дополнительная операция извлечение адреса хоста из огромного урла яндекса. Вот код функции, добавьте его в конец класса YandexAnalyzer:

    1. protected function getUrlFromYa($yaUrl){
    2.    if(preg_match_all(‘/[*](http:.*)$/Ui’, $yaUrl, $matches, PREG_SET_ORDER)!==false)
    3.       return $matches[0][1];
    4.    return false;
    5. }

    * This source code was highlighted with Source Code Highlighter.

Результат

Вот небольшой код для тестирования:

  1. $url=«vinzavod.ru»;
  2. $keywords=array(
  3.    ‘винзавод’,
  4.    ‘алкоголь производство’,
  5.    ‘производство алкоголя’,
  6.    ‘продажа алкоголя’,
  7.    ‘производители алкоголя’,
  8.    ‘вино’,
  9.    ‘вина’,
  10.    ‘производство вина’,
  11.    ‘продажа вина’,
  12.    ‘коньяк’,
  13.    ‘коньяки’,
  14.    ‘производство коньяка’,
  15.    ‘продажа коньяков’,
  16.    ‘продажа коньяка’,
  17.    ‘продажа коньяк’,
  18.    ‘настойка’,
  19.    ‘настойки’,
  20.    ‘производство настоек’,
  21.    ‘продажа настоек’,
  22.    ‘вермут’,
  23.    ‘вермуты’,
  24.    ‘производство вермута’,
  25.    ‘портвейн’,
  26.    ‘портвейны’,
  27.    ‘портвейн 777’,
  28.    ‘продажа портвейнов’,
  29.    ‘алкоголь’,
  30.    ‘алкогольная продукция’,
  31.    ‘фирменный алкоголь’,
  32.    ‘алкогольные напитки’,
  33.    ‘классические алкогольные напитки’
  34. );
  35.  
  36. $g=new YandexAnalyzer();
  37. foreach($keywords as $keyword){
  38.    if($res=$g->analyzeThis($url, $keyword)){
  39.       deb(‘<span style=«color: green;»>’.$res[0].‘-я позиция сайта ‘.$url.‘ по фразе <a href="’.$url.‘"’.$keyword.‘</a>"</span>’);
  40.    }
  41.    else
  42.       deb($url.‘ не найден в первых ‘.$g->resultsLimit.‘ результатах по фразе "’.$keyword.‘"’);
  43.    sleep(rand(3, 5));
  44. }

* This source code was highlighted with Source Code Highlighter.

и результат тестирования:
4-я позиция сайта vinzavod.ru по фразе «винзавод»
13-я позиция сайта vinzavod.ru по фразе «алкоголь производство»
158-я позиция сайта vinzavod.ru по фразе «производство алкоголя»
45-я позиция сайта vinzavod.ru по фразе «продажа алкоголя»
vinzavod.ru не найден в первых 300 результатах по фразе «производители алкоголя»
181-я позиция сайта vinzavod.ru по фразе «вино»
255-я позиция сайта vinzavod.ru по фразе «вина»
4-я позиция сайта vinzavod.ru по фразе «производство вина»
56-я позиция сайта vinzavod.ru по фразе «продажа вина»
94-я позиция сайта vinzavod.ru по фразе «коньяк»
56-я позиция сайта vinzavod.ru по фразе «коньяки»
7-я позиция сайта vinzavod.ru по фразе «производство коньяка»
5-я позиция сайта vinzavod.ru по фразе «продажа коньяков»
7-я позиция сайта vinzavod.ru по фразе «продажа коньяка»
5-я позиция сайта vinzavod.ru по фразе «продажа коньяк»
11-я позиция сайта vinzavod.ru по фразе «настойка»
17-я позиция сайта vinzavod.ru по фразе «настойки»
3-я позиция сайта vinzavod.ru по фразе «производство настоек»
1-я позиция сайта vinzavod.ru по фразе «продажа настоек»
30-я позиция сайта vinzavod.ru по фразе «вермут»
25-я позиция сайта vinzavod.ru по фразе «вермуты»
32-я позиция сайта vinzavod.ru по фразе «производство вермута»
32-я позиция сайта vinzavod.ru по фразе «портвейн»
15-я позиция сайта vinzavod.ru по фразе «портвейны»
93-я позиция сайта vinzavod.ru по фразе «портвейн 777»
4-я позиция сайта vinzavod.ru по фразе «продажа портвейнов»

Перспективы и планы на будущее

  • обуздать как минимум тройку Яндекс, Гугл, Рабмлер.
  • сделать человеческую оболочку для пользования, лучший вариант — ajax-приложение, с поддержкой проектов и сохранением на сервере результатов анализов

Статья готовилась в течении недели, поэтому на момент ее написания уже реализованы анализаторы для Яндекса, Гугла, Рабмлера, и пишется потихоньку приложение. Но это — тема уже следующих постов))
P.S.: Мой первый пост на Хабре, прошу больно не пинать, а конструктивно комментировать))

habr.com

Технические особенности шаблона:

  1. Шаблон делался в ProjectMaker RU 5.17.1.0 (так как последняя 5.17.2.0 версия слишком сырая и с багами, не рекомендую на ней запускать). Тестировался и на старых версиях (5.10.0.1). Стоит ограничение по запуску минимум 5.9.9.1, но как поведет себя на такой старой версии – хз. Закрытого типа (только выполнение). Если у вас нет ZennoPoster, то можно выписать лицензию вместе с Zennobox (мини-версия ZennoPoster), но это стоит +10$ к цене шаблона.
  2. Шаблон работает исключительно на запросах (без запуска вкладок браузера), что позитивно отражается на использовании ресурсов ПК и позволяет неплохо поднимать быстродействие парсинга в многопотоке, ибо основана нагрузка идет только на CPU.
  3. В работе шаблона используется свой алгоритм на основе C#-библиотек HtmlAgilityPack.dll (для работы с XML-ответами сервиса) и Newtonsoft.Json.dll (для обработки JSON ответов).
  4. Ключей API или логинов Яндекса здесь НЕ надо.

Алгоритм поиска такой: шаблон сначала берет название объекта (городарегиона), в пределах которого будем искать, получает координаты его размеров (прямоугольника, или условно «квадрата», в который вписаны границы объекта), и ищет в нем нужные фразы.
Минусы такого метода: если мы ищем в какой-то области, то в пределы ее квадрата могут попасть мелкие пограничные части соседних областей. А если эта область на границе с другой страной, то соответственно поиск затронет эту маленькую часть соседней страны. Потом ети «левые» объекты можно удалить по столбце адресов вручную, но в ~10% адресов может быть нестандартный синтаксис адреса (иногда нет указания страны, только городобласть). То есть для чистоты результатов лучше все же парсить «по городам» а не «по областям». Хотя даже в ситуации с городом в квадрат поиска могут попасть пригородные поселки, но это уже не так критично.

Чтобы спарсить почти все организации в нужном регионе хватит просто использовать для поиска разнообразные фразы-ключи, под которые наиболее логично подходит список разделов Яндекс.Справочника (~ 1200 фраз, выдается в комплекте с файлами парсера). Используя этот метод получается за пару минут собрать практически все организации любого крупного города. Например, у меня на 100 потоках такие результаты (без пост-парсинга Email):

  1. Москва: 20 минут ~ 400 000 объектов (400 000 со словом «Москва» в адресе, но 530 000 в самом квадрате вокруг города Москва).
  2. Санкт-Петербург: 10 минут ~ 228 000 объектов (233 000).
  3. Самара: 3 минуты ~ 52 000 объектов (59 000).
  4. Сочи — 2 минуты ~28 880 объектов (29 180).

Варианты использования:

  1. Поиск конкурентов в своей нишегороде.
  2. Поиск фирм под рассылкуспам по телефонуEmail.
  3. Поиск соц-страниц и сайтов организаций.
  4. Заполнение собственных сайтовдосок характеристиками объектов из Яндекс.Карт (есть же картинки-миниатюры, можно все аккуратно оформить).
  5. Заработок на указании услуг по парсингу Яндекс.Карт (создаёте темы по форумах, на Kwork).

Пример случайной выборки на 4000 строк из результатов парсинга разных фраз по нескольким городамобластям + результат работы в режиме [2. Геокодер]:
Скачать с Яндекс.Диск (файл CSV + XLSX, последний вручную заполнил и раскрасил).
Или посмотреть на гугл-докс:
1. Обычный парсинг — выборка на 4000 строк.CSV
2. Геокодер — популярные города-области Росии+СНГ

Подсказки по работе с крупными CSV файлами ищите в теме: Справочная: выборка из файловых баз, крупные *.txt файлы, регулярки, EmEditor, *.csv.

Видео-инструкция с примером первого запуска шаблона:

[​IMG]

zennolab.com

Что такое Яндекс.XML

Яндекс.XML — сервис, позволяющий отправлять запросы к поисковой базе Яндекса и получать ответы в формате XML.

 

Полезные ссылки :

  1. Официальная документация Яндекс.XML
  2. Новые правила использования Яндекс.XML
  3. Яндекс.XML: автоматизация получения данных о часовых ограничениях

Сервис является бесплатным и позволяет:

  • организовать поиск по сайту или порталу;
  • создать приложение, которое использует возможности поиска, например — определение позиций вашего сайта, анализ поисковой выдачи и тд.

Для того чтобы воспользоваться сервисом Яндекс.XML необходимо перейти по адресу: https://xml.yandex.ru/settings/ и ввести в форме авторизации данные вашей учетной записи в поисковой системе, проще говоря — доступы от почтового ящика. После авторизации, вы окажитесь в разделе «Настройка».

Интерфейс сервиса интуитивно понятен и вам не составит труда разобраться в нём. Обратите внимание на пункт «URL для запросов». В нем вы можете увидеть следующие параметры:

  • «user» — имя пользователя, которые вы ввели при авторизации;
  • «key»  —  система автоматически сгенерирует этот параметр.

Каждый раз при отправке запросов, вам необходимо будет указывать эти параметры.

Поле «Основной IP-адрес» — вводим IP, с которого будут отправляться запросы. Например: IP-адрес домена сайта.

Яндекс.XML предоставляет доступы к трем типам поиска:

  • русскому;
  • турецкому;
  • мировому.

В отличие от прямого парсинга страницы поиска, Яндекс.XML предотвращает различные запреты поисковой системы в виде капчи, но существуют лимиты на запросы.

 

Яндекс.XML лимиты

Лимит Яндекс.XML — ограничение на количество запросов к базе поисковой системы. Каждому подтвержденному в вебмастере сайту поисковая система выделяет определенное количество лимитов, это число зависит от качества сайта.

Обращаем ваше внимание, если право на управление сайтом подтвердили несколько пользователей, лимиты получает только первый владелец сайта.

Перейдем в раздел «Лимиты». Здесь можно увидеть общее количество лимитов в день, а также количество лимитов по подтвержденным сайтам.

Также существует ограничение по количеству отправляемых запросов в сутки. Внизу страницы представлена диаграмма, в которой указано количество лимитов, которое можно потратить каждый час.

 

Как пользоваться Яндекс.XML: парсер поисковой выдачи Яндекс

Каждый день SEO-специалист анализирует большой объем информации с совершенно разных источников: это могут быть как сайты конкурентов, так и результаты выдачи поисковых систем и тд. Использование Яндекс.XML  в своей работе может значительно упростить процесс анализа выдачи.

Для того чтобы понять принципы использования Яндекс.XML на практике мы реализуем простое и популярное приложение «Парсер подсветок сниппета», но помните — все зависит от ваших целей, поэтому анализировать выдачу можно по совершенно различным критериям.

Для реализации парсера (кроме Яндекс.XML и основ знаний по языку PHP) необходимо будет скачать библиотеку PHP Simple HTML DOM Parser. А также нам нужен домен и место на хостинге, на котором будут хранится файлы скриптов. И так, приступим.

Этап 1. Яндекс.XML: настройка

Сначала пройдите авторизацию. Для этого переходим в сервис xml.yandex.ru, нажимаем на кнопку «Начать работу» и вводим свои доступы.

Переходим в раздел «Настройки». В поле «Основной IP-адрес» вводим IP сайта с которого будут отправляться запросы,  поле «Тип поиска» выбираем «русский», ставим галочку «Я принимаю условия Лицензионного соглашения» и нажимаем на кнопку «Сохранить».

2 Этап. Формирование тестового запроса

Переходим в раздел «Тестовый запрос». Формируем значения  параметров и получаем конечный запрос.

В примере, мы будем использовать запрос вида: https://yandex.ru/search/xml?user=Login&key=Api-key&query=Test&lr=193

где:

  • Login — имя пользователя;
  • Api-key— API-ключ;
  • Test— текст поискового запроса;
  • Идентификатор страны/региона поиска — по умолчанию будем использовать 193 (Воронеж).

Сформированный запрос уже можно использовать, для этого достаточно вставить его в строку браузера. Кстати, если воспользоваться данным запросом с другого IP, мы получим следующий результат:

Этап 3. Создание страницы

В папке на вашем хостинге создаем страницу (yandex.php). Для удобства пользования предусмотрим 2 поля:

  • поля ввода поискового запроса;
  • список для выбора региона поиска (в нашем случае их два: Москва и Воронеж).

Код страницы, который можно просто скопировать:

  <!DOCTYPE html>  <html>  <head>  <title>Пример использования Яндекс.XML: парсер сниппета поисковой системы Яндекс</title>   </head>  <body>      <form method="post" action="yandex-result.php">  <b>Введите поисковую фразу:</b>  <input name="key" type="text" size="20">  <b>Введите регион:</b>  <select name="city">  <option value="193">Воронеж</option>  <option value="213">Москва</option>  </select>  <input type="submit" value="Отправить">  </form>      </body>  </html>  

Этап 3. Подключение парсера

Далее в эту папку необходимо закинуть файл парсера (simple_html_dom.php), а также создать вторую страницу(yandex-result.php), ниже приложен код с комментариями (надеюсь, вопросов не возникнет).

Код страницы, который можно просто скопировать:

  <?php  //Подключаем библиотеку парсера  include_once('simple_html_dom.php');    //Выводим введенный нами поисковой запрос  echo('<b>Результат по запросу:</b> '.$_POST['key'].'');    //Парсим страницу по сформированному запросу:  $html = file_get_html('https://yandex.ru/search/xml?user=XXX&key=YYY&query='. urlencode($_POST['key']).'&lr='.$_POST['city']);    //Выводим результат в текстовое поле  echo('<textarea name="comment" cols="40" rows="3">'.$html.'</textarea>');  ?>  

Этап 3. Результат

В итоге на хостинге в папке должны находиться следующие файлы:

  • yandex.php
  • simple_html_dom.php
  • yandex-result.php

Далее обращается к файлу на вашем хостинге с именем yandex.php, вводим необходимый поисковой запрос и выбираем регион:

После нажатия на кнопку «Отправить», в текстовом поле отобразиться результат поисковой выдачи только в формате XML:

Если мы проанализируем полученный результат мы увидим, что:

  • ссылка на сайт содержится в тегах <url>;
  • заголовок сниппета содержится в теге <title>;
  • описание сниппета содержится в теге <passage>;
  • а необходимые нам слова из подсветок содержаться в теге <hlword>.

И вот теперь нам нужен парсер, который поможет получить необходимые нам значения из этих тегов. Дописываем код на нашей странице (yandex-result.php), которая будет парсить только слова в тегах <hlword>.

Код страницы, который можно просто скопировать:

  <?php  //Подключаем библиотеку парсера  include_once('simple_html_dom.php');    //Выводим введенный нами поисковой запрос  echo('<b>Результат по запросу:</b> '.$_POST['key'].'');    //Парсим страницу по сформированному запросу:  $html = file_get_html('https://yandex.ru/search/xml?user=XXX&key=YYY&query='. urlencode($_POST['key']).'&lr='.$_POST['city']);    //Выводим результат в текстовое поле  echo('<textarea name="comment" cols="40" rows="3">'.$html.'</textarea>');    //Вывод всех слов из подстветки сниппета  foreach($html->find('hlword') as $element)  {  echo $element->innertext.' / ';  }  ?>  

Вновь запускаем страницу yandex.php с теми же параметрами:

Теперь мы можем считать, что результат достигнут, мы реализовали с вами «Парсер подсветок в поисковой системе Яндекс». Для ленивых прикладываю архив со скриптами (скачать бесплатно).

Для того чтобы улучшить результат, можно привести слова к начальной форме с помощью алгоритма phpMorphy , а также исключить повторяющиеся слова.

Удачи!

semantica.in

Лучшие региональные справочники организаций были тщательно отобраны командой Яндекса, и данные из них отображаются на Яндекс-картах. Кроме того, многомиллионная аудитория Яндекса имеет возможность самостоятельно добавлять и актуализировать информацию о компаниях. Такое сочетание готовых справочников и пользовательских данных составляет серьезную конкуренцию ДубльГИСу (программа для которого здесь).

Преимущества справочника организаций Яндекса — более широкий охват территорий, большее количество телефонов, более высокая скорость сбора контактов (влияет и мощность серверов Яндекса, и особенности организации справочника).

Менее объемный рубрикатор (по сравнению с 2GIS) во многих случаях является преимуществом. Кроме краткого рубрикатора, есть и полный, на более чем 1000 рубрик.

Актуальность данных в 2GIS обеспечивается обзвоном организаций сотрудниками ДубльГис, в то время как актуальность справочника организаций Яндекс-Карт обеспечивается множественными поставщиками данных и пользователями Яндекса. Тот или иной подход в разных случаях может быть более полезным, однозначного победителя здесь нет.

Для работы с найденными контактами организаций вы можете делать так: зайти на сайт Яндекс-Карт, открыть справочник организаций, и последовательно открывать одну компанию за другой, выбирать подходящие, копировать их название и контактные данные в Excel, а затем  уже делать свои пометки: «не дозвонился», «отправил предложение на email» и т.д. Это копирование с сайта в таблицу Excel занимает огромное количество времени!

Мы предлагаем вам другой подход: использовать программу — парсер организаций Яндекс-Карт, которая самостоятельно скопирует информацию об интересующих вас компаниях с сайта в Excel, и сэкономит ваши силы и время. Вы получите готовый к обработке список компаний, в котором можно делать примечания, отфильтровывать неинтересные компании и т.д.

Программа-парсер Яндекс-Карт по сбору данных об организациях будет полезна:
— менеджерам по продажам для поиска покупателей
— менеджерам по закупкам для поиска поставщиков
— маркетологам для изучения рынка
— руководителям компаний для поиска партнеров и клиентов

Предлагаемая нами программа-парсер организаций Яндекс-карт позволяет собирать следующую информацию:

  • Название организации
  • Рубрики/Отрасли/Категории организации
  • Страна/Регион/Район/Город
  • Адрес
  • Телефоны мобильные — для sms/Viber/WhatsApp-рассылки
  • Телефоны остальные — для холодных звонков
  • Факс
  • Сайт
  • Email с сайта компании(программа многопоточно просканирует сайт компании на заданную пользователем глубину)
  • ИНН с сайта компании
  • График работы
  • Геоданные (координаты): широта и долгота
  • Количества оценок и отзывов, рейтинг
  • Рекламные заголовки и тексты
  • ID и название филиальной сети
  • Услуги(атрибуты) организации
  • Ссылки на социальные сети (Facebook/Twitter/Instagram/Vkontakte/Youtube/Google+/Одноклассники)
  • Станции метро и расстояния до них
  • Ссылка на карточку компании на Яндекс-картах
  • Дополнительные данные — сделаем индивидуальную настройку выгрузки по запросу!

Программа позволяет задать нужную область на карте, одну или несколько категорий, и собрать все соответствующие данные нажатием одной кнопки. Например, можно отметить рубрику «парикмахерские», выбрать нужный регион, и собрать все парикмахерские из заданной области одной кнопкой!

Программа умеет работать с сервисом автоматического распознавания капчи для разгадки выдаваемых сервисом картинок. Вам необходимо иметь аккаунт в этом сервисе для пользования парсером Яндекс-карт.

После завершения работы программы файл с результатами автоматически открывается в Excel (если установлен MS Office) или Calc (если установлен OpenOffice). Файл имеет имя вида data***.csv. Результатом сбора являются такие файлы: пример файла с информацией о компаниях на Яндекс-Картах, выгруженной парсером.

Данные, собираемые программой, становятся доступны еще до завершения работы программы: каждые несколько секунд она записывает собранные данные в специальный файл с именем current.csv в папке программы.

Программа-парсер умеет синхронизировать список рубрик с сайтом Яндекс-Карт. Это означает, что программа не только умеет работать со всеми категориями рубрикатора, но и при появлении новых рубрик программа будет способна работать с новыми рубриками без необходимости обновления!

В отличие от парсера 2гис, список городов в парсере Яндекс-карт отсутствует (можно сказать, что он бесконечен) — вы можете выбрать любую область карты, которая вам нужна, и собрать данные с любого количества городов! Если заданная вами область будет слишком велика, программа автоматически разобьет её на несколько более мелких — настолько мелких, чтобы можно было собрать все организации (если не использовать разбиение области, можно получить максимум 200 организаций).

Программа умеет приостанавливать свою работу, и продолжать её. Паузу можно включать вручную, а если отключится интернет — программа поставит себя на паузу автоматически. Если во время сбора на сайте возникнет ошибка, и программа не сможет получить данные — она поставит себя на паузу на некоторое время, затем автоматически проснется и сделает еще несколько попыток получить те же данные.

Два индикатора показывают ход выполнения работы. Синий показывает прогресс по рубрикам, зеленый индикатор показывает прогресс сбора данных текущего этапа работы.

Парсер яндекс-карт умеет работать в режиме получения списка новых организаций в базе. При запуске сбора парсер ищет файл skip.txt в своей папке, и загружает оттуда список ID организаций, которые не нужно загружать. Если Вы собрали какую-то рубрику некоторое время назад, возьмите из старого файла результатов первую колонку с числовыми ID организаций, и поместите этот список в файл skip.txt в папке программы. Запустите сбор той же рубрики, парсер пропустит все старые организации, и на выходе вы получите список только новых организаций заданной рубрики.

Скриншот программы для парсинга Яндекс-карт:

Скриншот парсера организаций Яндекса

Скачать демо-версию парсера Яндекс-Карт

soksaitov.ru

Ввиду изменений в яндекс картах, парсер работает некорректно!

На данный момент парсер Яндекс Карт обновляется.

Как будет готово обновление, информация появится на сайте.


Парсер Яндекс Карт ver 4.6 – это быстрый и надежный софт с возможностью поиска по ключевым словам. С его помощью вы сможете спарсить базу данных по различным категориям по 8 странам СНГ и России.

Новый Яндекс Парсер включает полный список городов и организаций. Если вы будете использовать его, то сможете создать любую базу по стране, региону или населенному пункту. Это гораздо проще, быстрее и дешевле, чем купить базу данных, которая потом устареет.

Наш парсер Яндекс Карт регулярно обновляется. Недавно прошли изменения в API, которые сразу же отразились на работе софта. Мы внесли все необходимые правки, и вы снова можете пользоваться всеми возможностями Яндекс-парсера. Покупая базу данных, вы рискуете получить недостоверные телефоны, адреса и сайты организаций. С программой парсинга такого не произойдет никогда.

А чем наш парсер Яндекс Карт лучше других?

·         удобный новый дизайн;

·         возможность собрать email прямо с сайтов;

·         ускоренные поисковые алгоритмы;

·         обновление напрямую с сайта без задержек;

·         безошибочная активация.

Софт позволяет выгружать и хранить неограниченное количество баз данных в формате CSV (Excel). Парсер организаций отслеживает базу данных Яндекс Карт в режиме онлайн. Несмотря на большой объем информации, приложение работает быстро.  

Вы можете настроить парсер базы email компаний любого типа (есть рубрики и подрубрики), индексы и адреса, факсы, сайты, телефоны, ссылки на соцсети, в том числе, на Одноклассники.ру. Парсер позволяет сортировать базы по способам оплаты и времени работы. Это очень удобный софт, дающий информацию, которую не приходится «допиливать» вручную.

Протестировать работу приложения вы можете прямо сейчас, скачав демо-версию. Опция доступна только для тех, кто уже покупал лицензию на другие продукты компании.

Парсер (граббер) Яндекс Карт— это программа, с помощью которой вы легко можете выгрузить следующие данные из https://maps.yandex.ru :

        — название
        — тип компании
        — страна
        — регион
        — населенный пункт
        — индекс
        — адрес
        — рубрика
        — подрубрика
        — телефоны 
        — факсы
        — email
        — сайты
        — ссылка на vk.com
        — ссылка на twitter.com
        — ссылка на facebook.com
        — ссылка на ok.ru
        — ремя работы
        — способы оплаты
        — координаты

 

Работу парсера можно протестировать на демо-версии.

Оплатить можно:

        — Webmoney
        — Яндекс деньги
        — QIWI кошелек
        — VISA / Mastercard — банковские карты
        — И другие способы оплаты….

После оплаты вы получите лицензионный ключ активации программы, и активируете Демо версию.

Срок действия лицензионного ключа  — 1 год с момента его оплаты.
Продление лицензии стоит 1 000 р. на каждый последующий год.

 

parsinfo.ru

Для чего используется парсер Яндекса?

На данный момент парсинг поисковой выдачи — это один из самых популярных видов парсинга. Ведь если вам нужны ссылки, вряд ли вам захочется собирать их вручную, это будет долго и утомительно. Автоматизировать задачу сбора ссылок помогают парсера выдачи.

Парсер выдачи поисковиков применяется во многих сферах: SEO, интернет маркетинге и т. д. У них часто возникает необходимость анализа информации из выдачи поисковиков. В связи с этим не редко возникает вопрос: “где скачать Яндекс парсер?”. Справиться с задачей сбора ссылок и не тратить время на выполнение рутинной работы поможет парсер выдачи Яндекса.

Вариантов использования Яндекс парсера очень много. Вот некоторые из них:
1. поиск потенциальных партнеров и клиентов;
2. поиск сайтов-доноров с целью размещения ссылок;
3. оценка выдачи поисковика по продвигаемому запросу;
4. поиск сайтов для покупки рекламы и др.

Парсер Yandex, представленный в стандартном наборе настроек Datacol позволяет получать элементы выдачи Яндекса по заданным запросам. Процесс парсинга Yandex.ru проходит в несколько этапов:

1) Сбор парсером выдачи Яндекса всей необходимой информации. В настройках мы задаем интересующие нас запросы, а парсер Яндекса собирает по ним необходимую информацию из выдачи: запрос, ссылка, заголовок и сниппет (краткое описание к сайту или странице, на которую ведет найденная поисковиком ссылка).

2) Сохранение собранной информации. После парсинга происходит сохранение информации в CSV файлы. Для каждого запроса генерируется отдельный CSV файл, имя которого соответствует запросу. Теперь информация представлена в удобном виде для последующего анализа.

Приведем наглядный пример использования парсера Yandex.ru в работе SEO специалиста. Допустим, перед нами стоит задача поиска сайтов-доноров для размещения ссылок. В этом случае есть 2 варианта развития событий. Первый — проанализировать ссылочную массу успешных конкурентов и следовать их стратегии. Второй — это поиск сайтов, которые хорошо ранжируются по родственным запросам нашего сайта. В дальнейшем мы можем приобрести у них ссылки, тем самым продвинув наш сайт в выдаче. Для выполнения как первого, так и второго варианта нам нужен список сайтов в удобной текстовой форме. Это позволит быстро проанализировать сайты из выдачи и найти подходящие для размещения ссылок. Справиться с этой задачей нам и поможет парсер выдачи Яндекса.

Уже давно парсера стали незаменимыми помощниками SEO специалистов и интернет маркетологов при работе с поисковой выдачей. Они помогают не только сэкономить время, но и не заниматься скучной и рутинной работой вручную. Парсер Yandex является наглядным подтверждением простоты и целесообразности использования парсера. Протестировать его работу можно прямо сейчас. Скачать Яндекс парсер, реализованный в рамках Datacol можно здесь.

web-data-extractor.net

Парсинг ключевых слов из выдачи

Это самый популярный вопрос, которым задаются начинающие сеошники или менеджеры, которым нужно продвигать сайт по определенным запросам. Чтобы понять, как это делается в теории, нужно подкрепить информацию небольшой практикой. Этот пример будет основываться на ручном парсинге. Допустим, есть ключ «тест», мы вводим его в строку поиска Яндекса и нам выдает около 110 миллионов ответов. Далее нужно просмотреть все анкоры у сайтов в топе, их ссылки (главная страница сайта, поддомен или же внутренняя страница), снипеты (желательно вчитаться в них и понять, как сделать лучше).

Также, если ваше ключевое слово довольно часто ищут, Яндекс внизу страницы выдачи предложит вам список похожих ключевых слов, а их очень важно учитывать! Еще интересным моментом выступает быстробот, если же сайт попал в топ недавно (справа пишется 4 часа назад), значит на нем «сидит» бот Яндекса, просмотрите этот сайт, и выпишите ключевые его моменты.

Купить прокси для парсинга сейчас

Если вы продвигаете свой сайт по определенному региону или стране, нужно это указать при поиске (выбрать фильтр поиска – справа от строки в самом вверху). Можно сделать небольшую аналогию с парсингом ключевых слов Google, процесс сбора ключевых слов немного отличается, но суть остается та же. И еще стоит напомнить о тех же самых подсказках ключевых слов в Гугл, они очень часто становятся отправной точкой для принятия решений.

Парсер Яндекс Wordstat

Здесь нет ничего сложного, суть данной операции состоит в извлечении нужного количества слов по определенному запросу из огромного количества ключевых слов вордстата. На сегодня существует очень много программ, скриптов и даже виджетов для браузеров, которые будут парсить «яндекс вордстат» в полуавтоматическом режиме. Вам остается только наладить этот процесс и после глазами просмотреть всю полученную информацию, или же снова профильтровать данные по нужным значениям.

Парсер ключевых слов Яндекс Директа

Следующим по популярности сервисом для парсинга выступает «Директ». Если вы хотите составить правильное семантическое ядро, полностью подготовить свою рекламную кампанию в правильном ключе и сделать маркетинговый анализ, то парсинг подсказок с Яндекса и объявлений с Яндекс Директа — вам помогут лучше всего! Для совершения этой операции вам помогут или наши рекомендации по «безобидному» парсингу ключевых фраз, или же ваша уверенность в своих силах и выдержке перед монотонной работой.

Парсинг Яндекс карт

Парсер Яндекс Карт

Основу парсинга Яндекс Карт составляет простая информация, которую владельцы сайтов пишут для общего обозревания.

Сюда можно отнести:

  • Адрес сайта.
  • Адрес физического «представительства».
  • Почта для связи (скорее всего для рабочих целей).
  • Телефоны для поддержки, или ознакомления клиентов.

Обычно, готовые алгоритмы парсинга берут все данные и группируют их по таблице Excel, оглавляя ее названием предприятия, временем работы, адресом, координатами на карте и другими основными данными.

Заключение

Чтобы облегчить себе работу, вы можете приобрести у нас прокси для парсинга Яндекса, включая выдачу Директ, Вордстат или карты. Помните, что при покупке нескольких прокси, нужно учитывать также их региональную принадлежность, чем дальше они находятся от региона вашей работы, тем дольше будет происходить ответ сервера. Замечено, что при парсинге в России используя прокси из Казахстана или России, ответ сервера мизерный, в то время как при использовании США или Канады, ответ отстает на пару миллисекунд (что в некоторых ситуациях очень критично).

proxy-sale.com

Доступные парсера Яндекса:

Парсер Яндекс Маркета
Один из самых популярных парсеров у наших клиентов. Собирает описание товаров из Яндекс Маркета. В качестве входных данных можно задать название нужных товаров, ссылку на категорию или ссылку с параметрами пользовательского фильтра. Парсер соберет описание найденных товаров, их технические характеристики и изображения. Подробнее

Парсер продавцов Маркета
Этот парсер мы разработали для владельцев интернет-магазинов, а также для дропшипперов, которые ищут товар по самой низкой цене. Укажите нужный список товаров, ссылку на интересующую вас категорию товаров или бренд и после запуска парсера вы получите полную информацию о ценах конкурентов или потенциальных поставщиках нужных товаров. Подробнее

Парсер Яндекс Карт
Если вы работаете с конкретным регионом, то наверняка заинтересуетесь парсером Яндекс Карт. Ведь он позволяет собрать информацию об организациях, включая их контакты, в заданной категории. Соберите базу потенциальных клиентов или партнеров всего за 10 минут. Подробнее

Парсер выдачи Яндекс
Когда ищут парсер Яндекса, чаще всего имеют в виду парсер поисковой выдачи. Ведь Яндекс в первую очередь это поисковая система. И среди наших парсеров вы найдете парсер поисковой выдачи, который собирает ссылки и сниппеты выдачи Яндекса по заданному ключевому слову. Настройки программы позволяют настроить сбор выдачи до нужной глубины, а также запуск следующей кампании, которая в качестве входных данных возьмет результаты текущей. Подробнее

Парсер ключевых слов
Незаменимая настройка для маркетологов и seo-шников, с которой начинается создание любого сайта или рекламной кампании. Позволяет собрать прогноз показов по заданному ключевому слову или списку слов. Полученные данные можно обработать сразу после сбора с помощью плагинов или позже, предварительно сохранив результаты в Excel. Подробнее

Парсер Яндекс Каталога
Парсер Яндекс Каталога соберет сайты из заданной категории. Помимо названия сайта и ссылки на него вы получите описание сайта из Яндекс Каталога, установленную для него картинку и тематический индекс цитирования (тИЦ). Подробнее

Парсер сниппетов Яндекса
В отличии от парсера поисковой выдачи Яндекса, парсер сниппетов соберет только снппет из поисковой выдачи, и запрос, по которому этот сниппет был получен. Инструмент пригодится при внутренней оптимизации сайта, улучшению CTR страницы в поисковой выдачи и повышения релевантности. Подробнее

web-data-extractor.net


You May Also Like

About the Author: admind

Добавить комментарий

Ваш e-mail не будет опубликован. Обязательные поля помечены *

Этот сайт использует Akismet для борьбы со спамом. Узнайте, как обрабатываются ваши данные комментариев.