Парсинг поисковиков — язык запросов, парсеры, тонкости запросов


Давно уже хотел запостить свои размышления о парсинге поисковых систем — всё руки не доходили …

У кого самые большие базы данных по онлайн информации ? — Правильно — у поисковиков ! Желая зарабатывать в онлайне денежки имхо просто необходимо уметь необходимую информацию вытягивать и этих баз …

Итак — что такое поисковик надеюсь все знают, соответственно начнем с того, что поднимем вопрос — такое парсинг и для чего он нужен ?

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

Как правило парсеры применяются для поиска определенных ресурсов, либо определенного контента. Например поиск баз для спама — гостевых книг, форумов, блогов, адресов email,  поиск тематических статей для дальшейшего репостинга и реврайта.

Итак — что же тут такого, эдакого ?

А то, что для того, чтоб достичь поставленные результаты — т.е. напарсить максимально большое количество материала, просто необходимо владеть языком запросов той поисковой машины, которую парсим. Информации в сети довольно много и для начала я бы посоветовал проанализировать выдачу по соответствующим запросам «Язык запросов» Яндекса и Гугла.

По Яндексу, в принципе достаточно и встроенного описания языка запросов

А вот гугловское описание очень урезанное … может в гугле и есть полное, но с лёту не нашел. Поэтому вот, что больше всего понравилось мне:

Компактное описание Google

Аdvanced operators reference

Заметки для простого поиска

Теперь чуток подробнее в режиме рассуждений на примере парсинга Гугла — допустим собиваем ссылочные базы гостевых книг и форумов:

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

* особенности URL-ов для регистрации, постинга и других специфических страничек (наличие в ссылке кеев guestbook, forum и пр.)

* особенности заполнения тайтла  (ключевые слова Форум, Гостевая книга и пр.)

* наличие на страничке определенного специфического текста, соответствующего данному движку (powered by phpbb, и пр.)

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

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

А в «дроблении» нам как раз очень поможет язык запросов !

* ну во первых неплохо бы исключить «дохлые» ресурсы добавляем в запрос -error -warning и т.п.

* дробим по доменным зонам и доменам site:ru site:com …

* при запросах а-ля inurl:forum без использвания intitle можно дробить как раз по intitle:»a b» intitle:»aba» (тупо перебирая разные варианты)

* вообще можно в любые текстовые запросы добавлять перебор вариантов, напр. sign the guestbook «g», sign the guestbook «h» и т.д.

* в найденном по текстовым, либо тайтловым запросам можно включать либо исключать по типам урлов Напр. -inurl:»html» +inurl:»html» и т.д.

* для поиска в диапазоне используем цифровые операторы напр. page=#1:30#, так же можно и перебором page=1, page=2 и т.д. (где потребуется)

Маленькие хитрости

* конкретно при парсинге Гугла можно использовать различные дата-центры (это распределит нагрузку и исключит возможность бана одним дата-центром)

* особое внимание уделяем многоязычности при поиске, например гостевая книга в url-ах на разных языках может выглядеть очень по-разному guestbook, guestebook, gaestebuch, gastenboek, gaestebogen, gjestebok и т.д.   сам текст «добавить сообщение» и другие ключевики тоже

* конечно же не забываем о различных сокращениях и использования спец символов guest_b, guest-b, g-book и т.д.

* при парсинге ну допустим сабмит-форм не обязательно ведь выходить сразу на эту форму, возможно есть очень специфические странички которые гораздо легче «вытянуть», расположенные по соседству. Напр.  viewprofile viewtopcomments и прочее…

* отдельно внимание стоит уделить обратному поиску — т.е. зная какими запросами (фарма, казино, порно кейворды) в основном спамят — искать уже эти ресурсы.  Непосредственно найденные ресурсы использовать не рекомендую — т.к. уже заспамленые, а вот найти, что то «новенькое» по типу самого ресурса — и уже искать подобные — весьма полезно.

* желательно распределять запросы так, чтобы с одного IP было не более 1000 в сутки

В общем довольно творческий процесс получается 🙂

Напоследок пару слов о парсерах

Вообще лично мне нравился Aura SE Parser 1.1  — долгое время именно его и юзал, но к сожалению разработчик куда то запропал  и проект умер. Парсер написан на перле, исходный код никак не защищен — поэтому если есть желающие «оживить» софтину — стучите в личку. «Оживление» думаю не должно быть проблематичным — имхо нужно только подкорректировать регулярки да запросы.

Кому интересно ознакомиться поближе — велкам: интерфейс ауры и мануал

(повторяю — парсер в данный момент не парсит)

Добавлено 08.07.09  непосредственно Аура —  CGI и HTTP (perl специалисты — велкам)

Вообще, в идеале, парсер должен уметь следующее:

* Осуществлять многопоточный парсинг

* Работать через прокси (разных типов)

* Исходя из вышеперечисленного, желательно чтоб парсер был серверный (не win32)

* Запросы и регулярки для парсинга должны быть доступны для правки

* Автоматическое дробление при большом количестве найденных результатов

* ВООБЩЕ идеально было бы подключение какого нить сервиса типа анти-капчи — если поисковик усомниться в чистоте ваших намерений и подсунет капчу — вуаля ! и работаем дальше — но подобных фич я еще не видел … (хотя реализация не сложная)

* Ну и пожелания, как и ко всему Программному обеспечению — хороший мануал, отзывчивый и дружественный саппорт, своевременные обновления (если вдруг формат выдачи поменяется)

кстати у Aura SE Parser мануал — супер, один из лучших которые я когда либо видел — всем бы так !

P.S.

В давние времена, собирал базы признаков для парсинга — где то покупал, где то так сливал, дополнял сам …  В общем думаю будет интересно посмотреть, на конкретных примерах и материал лучше усваивается — Поисковые запросы для парсинга гостевых книг и форумов


17 комментариев на «“Парсинг поисковиков — язык запросов, парсеры, тонкости запросов”»

  1. Спасибо за статью)
    Сам как раз время от времени озадачиваюсь проблемой парсинга поисковиков)
    Жвль что в Перле не силен, так бы принял участие)
    За последнюю ссылку вдвойне спасибо) посмотримс что там у вас)

  2. Парсинг, конечно, полезная вещь. С ним можно еще много чего делать, о чем тут не говорится)

  3. Статья интересная. Но вот очень интерисует некоторое дополнение к ней. Где можно взять список дата-центров гуугла? А Аура это серверный скрипт ? Если не сложно может скините код на adm@pupers.net, попробовал бы оживить!

  4. список дата центов найти можно 🙂 спроси у гугла
    Аура скрипт серверный — ссылки выложил в посте

  5. Статья весьма актуальная, я сама недавно только столкнулась с таким понятием как парсинг, кстати, никто не подскажеть нормальный плагин для вордпресс для парсинга контента с любого источника?

  6. Самое обсуждаемое на блогах:
    Google анонсировал операционную систему
    Ювенальная юстиция в России
    Машинист метрополитена выпал из поезда

  7. Всем привет. Написал программу для парсинга поисковиков — яндекса и гула ищет пока DLE, phpBB, ucoz сайты. Программу можно скачать с сайта cybermake.ru.
    Но собственно говоря что хотел спросить, где взять исходники парсера с Perl?
    Мне они особо не нужны просто хочу посмотреть кака прога работает.
    Интересен момент что вы говорите поисковик находит милион записей — а отображает не все и нужно делать переборы.
    Такой парсинг только создаст базу абсолютно не тематических сайтов, да и вообще всего подряд.
    Нужно искать по имени новости или темы и автору ее, чтото наподобе.
    Например искал сайты дле по нашему альбому (Mix-Tape.Me Summer 2010 и имя автора публикаций) у кого мы заказывали рекламу альбома, так вот мусора вообще не налось, начал искать Mix-Tape.Me Summer 2010 без имени автора рекламы, нашелся один хлам.
    Плюс нужно отсеить не посещаемые сайты и еще много чего. Вот это тогда понмаю парсинг.

    Если у вас базы изначально с хорошими сайтами тогда вы и продать базу можете и ни один раз.

  8. А не кто не слышал про такой ресурс….. долго думал как бы автоматически парсить новости со своего сайта в twitter и наткнулся на http://socnet2socnet.com/ очень облегчило мне жизнь ))))

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

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