В сети существует достаточно много разработанных серверных скриптов и десктопных приложений для извлечения информации (парсинга) каталога яндекса (ЯК). В данной статье не является целью привести примеры онлайн сервисов для парсинга ЯК, их можно найти в поисковой системе по ключу парсер яндекс каталога. Пролистав страницу, ниже вы найдете ссылку для скачивания серверной версии граббера, которую можно установить на денвере.
Что такое Яндекс.Каталог?
Яндекс Каталог, или просто ЯК, это сборник самых хороших, качественных (по мнению редакторов самого каталога) ресурсов русского интернета, сгруппированных по тематическим категориям. В каталоге ЯК ресурсы отсортированы в порядке убывания их тематического индекса цитирования (тИЦ), который среди SEOшников считается одним из показателей качественного сайта. Более подробно о яндекс-каталоге вы можете почитать здесь.
Что такое парсер?
Парсер — это синтаксический анализатор. В нашем случае парсер, или граббер, это анализатор кода. Обычно это программа, или часть программы, которая извлекает из заданной структуры необходимые данные. Парсер яндекс каталога это программа, которая извлекает из страниц ЯКа урлы сайтов в заданной тематике (категории).
Зачем нужен парсер каталога яндекса?
Есть несколько целей использования информации о сайтах, полученных в результате парсинга каталога. Ниже приводится две наиболее распространенных из них.
- Покупка ссылок в сапе с сайтов именно вашей тематики или смежной для эффективного увеличения тИЦ своего ресурса.
- Поиск контактной информации с сайтов (часто с помощью специальных программ) и связь с администраторами или вебмастерами для рекламы, сотрудничества или тематического обмена ссылками или пользователями.
Наверняка, комментарии излишни. Если вам нужен парсер каталога ЯК, вы попали именно туда, куда следует.
Скачать парсер ЯК с инструкциями
Для скачивания парсера кликните ссылку ниже:
YacaParser.zip [11.39KB]
ТРЕБОВАНИЯ
- PHP 4+
- Библиотека cURL
- Поддержка функций работы с файлами (fopen, fwrite)
УСТАНОВКА
Перепишите папку YacaParser на свой сервер в любое место, доступное из web. Папка files должна быть доступна для записи. Если вы записали на сайт site.ru, тогда запустите парсер, введя в строку браузера путь http://site.ru/YacaParser/
ИСПОЛЬЗОВАНИЕ
При использовании скрипта необходимо задать категорию, которую требуется спарсить. Поддерживается два формата категории:
1. Категория/Подкатегория
Например, для парсинга категории “Недвижимость”, необходимо ввести путь
Business/Realty
2. Полный путь
Например,
http://yaca.yandex.ru/yca/cat/Business/Realty/
При переходе по страницам Яндекс Каталога используется задержка в 1 секунду (строка 48 файла class.Grabber.php). Этот параметр можно менять, задавая целое число секунд. Регулярные выражения для работы со структурой кода страниц каталога можно изменять в файле config.php.
ВНИМАНИЕ
При большом количестве запросов к яндекс каталогу ваш IP адрес может быть забанен на сутки. Обычно, не более 1000 запросов (страниц) в час это нормально.
Все замечания по поводу скрипта вы можете оставлять в комментариях к данному посту. Скрипт распространяется свободно, но если вы захотите отблагодарить автора, он всегда рад. Реквизиты можно найти на странице контактов. Успехов в продвижении!


Mons
Ноябрь 14, 2008 at 19:00
1А под парсинг блогов к примеру сможешь ?
Devaka
Ноябрь 14, 2008 at 19:29
2Запросто :) Только нужна четкая задача: что на входе и что на выходе + какие параметры настройки?
Mons
Ноябрь 14, 2008 at 20:49
3Смотри. Мне к примеру нужено чтобы из ретинга станционарных блогов выдирал все имеющиеся ссылки блогов. То есть на входе у нас: http://blogs.yandex.ru/top/standalone/ а на выходе что то виде http://blog.blog.com и все. Если не затрудни то на нулледе в той же теме отпишись о результатх. Буду признателен ) Заранее спс. Только хайд ставь не менее 500
Devaka
Ноябрь 15, 2008 at 00:08
4Хорошо, сделаем… а зачем такой большой хайд ставить, ведь пару человек всего скачать смогут?! =)
Mons
Ноябрь 15, 2008 at 14:14
5Да мало, зато яндекс не будет ничего менять и куча школьников не кинется парсить для спама
Mons
Ноябрь 15, 2008 at 14:15
6Спасибо кстати=)
Вася
Декабрь 8, 2008 at 19:24
7нормально так украл скрипт
Anton
Февраль 23, 2009 at 13:08
8Спасибо. очень полезно
Дмитрий
Май 6, 2009 at 08:43
9Скачаю, нада как раз спарсить сайты из Яки
Спасибо)
Antii
Июнь 12, 2009 at 22:10
10А можно ли весь каталог сразу запарсить?
Николай
Август 3, 2009 at 22:39
11Супер плагин. Очень помогли! Ставлю на Вас вечную ссылку :)
wq21
Сентябрь 17, 2009 at 13:07
12Скажите, а парсить выдачу Я.каталога он может? а то у меня что-то не получилось… ввел страничку с выдачей, процесс вроде пошел, только файл не создался с урлами.
PS все в кракозябрах было.
Олег
Октябрь 2, 2009 at 10:16
13Сергей, большое спасибо за скрипт!
Единственное чего не хватает, т.к. это поддержка работы с прокси.
Не планируете сделать?
Иван
Октябрь 2, 2009 at 15:21
14Огромное спасибо!
Garadzeneec
Октябрь 6, 2009 at 20:51
15Огромное пасиба за парсер, буду мучать яндекс =)
vrs
Октябрь 20, 2009 at 09:54
16Сергей отлично!
Как раз такой скрипт искал на той недели, но скачивал глючные.
Ваш работает.
Спарсил около 4000 ссылок. Поставил задержку в 150 сек. И IP добавил в сервис хороших роботов Яндекса. Не банит :).
Ильшат
Ноябрь 3, 2009 at 12:46
17Хорошая штука, спасибо. Имхо, это в первую очередь для тИЦа, потом для выдачи, как думаете?
Андрей
Ноябрь 3, 2009 at 20:09
18Отличный парсер. Отпарсил нужную категорию из каталога без проблем. У кого есть голова сможет и региональную выдачу посмотреть. Огромное спасибо.
Андрей
Ноябрь 18, 2009 at 10:12
19а под какой движок этот парсер?
Необомж
Ноябрь 25, 2009 at 11:00
20Хороший парсер. На Денвере не заработал, но вот на дешевеньком хостинге вполне хорошо отработал. Установить и заюзать данный парсер каталога Яндекса сможет даже ребенок :) Порекомендовал на своей блоге. Спасибо.
Ренат
Декабрь 10, 2009 at 17:15
21Что-то перестал работать. Белый экран и все. В чем может быть проблема?
Al-Aziz
Декабрь 13, 2009 at 18:41
22Здравствуйте Сергей Анатольевич!
Огромное спасибо Вам за отличный парсер!
тока на Денвере не заработал… и не подскажите, как переделать это скрипт на “www.uz” узбекский каталог!
Огромное спасибо.
кризис
Декабрь 17, 2009 at 15:32
23И у меня что то перестал работать
Сразу пишет после задания категории “вы можете скачать файл”
В чем может быть дело?
Иван
Декабрь 21, 2009 at 01:35
24Здравствуйте! Действительно чего то перестал парсер работать, думаю не только я был бы вам признателен за исправление сего полезного инструмента.
Devaka
Декабрь 21, 2009 at 06:37
25Ребята, спасибо за обратную связь. Поверю и исправлю проблему в ближайшее время. Видимо, Яндекс поменял формат сниппетов после снежинска.
aassaaa
Декабрь 26, 2009 at 08:24
26Подключаюсь к просящим, было бы очень хорошо подправить скрипт
Stranger
Декабрь 31, 2009 at 19:45
27С новым годом!
Заодно присоединяюсь к просьбе подправить скрипт)
Евгений
Март 16, 2010 at 20:22
28Да уж, пожалуйста подправьте!
Вадим
Апрель 1, 2010 at 16:02
29Похоже скрипт до сих пор не работает. Сразу после указания категории и нажатия кнопки получить, выдает – “теперь вы можете скачать файл” (и битая ссылка). Исправьте пожалуйста.
Frogger
Апрель 20, 2010 at 15:35
30К сожалению, скрипт до сих пор не работает.
Автор, когда можно ждать апдейт?
Ирина Касач
Апрель 22, 2010 at 15:17
31Парсер не работает, почему?
Антон
Апрель 23, 2010 at 08:03
32Похоже у Сергея просто пока не хватает времени подправить скрипт. Будем надеяться.
жека
Май 3, 2010 at 23:59
33тоже хотелось бы чтобы скрипт заработал
Trotter
Май 5, 2010 at 00:01
34Серегааа, услышь наши молитвы )))
buzzman
Май 7, 2010 at 14:06
35А у меня заработал. Настроил у себя на http://buzzman.ru/parser-yandeks-kataloga/ – используйте на здоровье =)
На деле больше времени ушло на разбор чужого кода нежели на исправление – проблема была в регулярных выражениях.
Спасибо, Devaka
Кот Бурма
Май 10, 2010 at 12:11
36Я уже сам починил его)) Фантазию то врубите уже
buzzman
Май 10, 2010 at 19:36
37Devaka, скажи, а почему мой комментарий то не опубликовал. Я сделал что-то неправомерное починив твой скрипт и выложив у себя в блоге?
Devaka
Май 10, 2010 at 23:24
38buzzman, все в порядке, комментарий одобрен (он должен был пройти модерацию из-за ссылки, а я сейчас за границей).
В скрипте загвоздка только в регулярном выражении в конфиге, так как яша поменял внутреннюю структуру серпа яка.
frebasic
Июнь 26, 2010 at 17:56
39Не работает :(
Александр Рыжов
Июнь 27, 2010 at 18:39
40frebasic, выше же сказали уже об этом и ссылку дали на рабочую версию.
Спасибо Всем!
Nazary
Июль 21, 2010 at 17:51
41А когда эту версию скрипта отремонтируют? Или как самому ее отремонтировать? Что и где поменять :)?
Сергей
Август 21, 2010 at 09:08
42Если использовать этот парсер только для отбора сайтов в сапе, то не проще ли в сапо-фильтре указывать “сайты в ЯК” и выбирать категорию?
Dzedx
Сентябрь 23, 2010 at 20:12
43Devaka, ты написал в статье про Поиск контактной информации с сайтов (часто с помощью специальных программ). Не подскажешь какие это могут быть программы?
kolchakA
Октябрь 1, 2010 at 21:07
44Dzedx, обычно это email грабберы (еще бывает грабят телефоны, ICQ и т.п.). В простом случае можно просто искать страницы с контактными формами, ну и другие способы есть для более продвинутых)))))
Janee
Октябрь 10, 2010 at 12:23
45Доработайте и выложите плз рабочий скрипт, очень нужен
аня
Октябрь 28, 2010 at 09:21
46у меня тоже не работает(
buzzman
Октябрь 28, 2010 at 09:39
47Народ, читайте комменты прежде чем писать очередное “у меня тоже…”
В скрипте надо изменить шаблон парсера в связи с изменениями выдачи Яндекса.
Форма парсера есть на http://buzzman.ru/parser-yandeks-kataloga/
Автор изменит как время появится. А пока есть видно более важные дела.
Антон
Ноябрь 5, 2010 at 23:07
48Да видимо со скриптом проблема :(
Вебстудия
Январь 29, 2011 at 16:43
49У меня тоже чет не пошел..
Komyak
Апрель 22, 2011 at 18:23
50В файле: src/config.php
Заменить содержимое на:
<?
// base url to yaca category
define("YACA_URL_BASE", "http://yaca.yandex.ru/yca/ungrp/cat/");
// regular expression of website url in list of websites in any category
define("YACA_URL_EXPRESSION", "#<a href=\"(.+?)\" class=\"b-result__name\"#i");
// regular expression for websites count
define("YACA_SITESCNT_EXPRESSION", "#<h2[^>]+>([0-9]+).*?<\/h2>#ms");
?>
marika
Май 2, 2011 at 22:53
51Уважаемый Komyak, может еще немного поколдуете над кодом? Парсит, но не все. Допустим, категория Sports/Hockey/, Ваш код парсит только 91 урл, а должно быть 163. Заранее спасибо!
D.Mich
Декабрь 29, 2011 at 16:51
52Это, конечно, старая тема, но можно сделать чтобы выводились все сайты. Для этого надо в файле src/class.Grabber.php в 41 строке вместо $this->Maximum….]/20); поставить $this->Maximum…/10);
western
Январь 30, 2012 at 02:42
53никуя твой парсер не работает и работать не мог…
ActMan
Март 18, 2012 at 21:43
54Да, что-то не работает парсер. Уважаемый Devaka, не могли бы выложить обновленную рабочую версию, пожалуйста?