Как сделать парсинг групп в google. Парсер google-выдачи, бесплатный. Улучшенная генерация отчётов

Этот парсер прост, как трусы по рубль двадцать. И это не только про его возможности (они кстати скромные, ни поддержки прокси, ни антикапчи), а и про интерфейс тоже.

Но на всякий случай расскажу что и куда клацать, чтобы было хорошо:)


1 - Запросы к ПС, построчно. Русские символы вводите как есть, программа сама сделает urlencode. Клик правой кнопкой мыши откроет меню с парой плюшек.

2 - Кликните, чтобы к каждому запросу добавить site:TLD, где список этих самых TLD находится в файле zones.txt.

Нафиг это нужно? Все очень просто, сравним запрос "google parser" с запросом "google parser site:ru"
В первом случае поисковая выдача будет содержать все найденные сайты, а во втором только сайты в зоне ru.
Это полезно, если требуется получить более 1000 результатов. В идеале, для каждой доменной зоны можно получить по 1000 ссылок.
Например , по запросы "парсер google " мы получили только 1000 ссылок.
А если кликнуть "site:TLD", то сможем получить до 11000 ссылок:

3 - Файл, в который будут сохранены найденные ссылки. Если указанный файл существует, то он будет просто дополнен, а не перезаписан.

4 - Файл, в который будут сохранены найденные домены . Если указанный файл существует, то он будет просто дополнен, а не перезаписан.

5 - Интервал задержек между запросами. Лучше не торопить события и выставив что-то между 20-30, пойти сделать себе чай, бутерброд с колбасой и почитать новости, пока программа будет работать:)

6 - Выпадающий список для управления парсингом - старт, стоп, пауза и продолжить. Содержание списка меняется в зависимости от выполняемой задачи, чтобы отображать только доступные задачи.

  • Количество результатов по запросу
  • Ссылки, анкоры и сниппеты из выдачи
  • Список связанных ключевых слов(Related keywords)
  • Определяет посчитал ли Google запрос опечаткой или нет
  • Парсит из рекламных блоков ссылку, анкор и сниппет. Следует обратить внимание, что в переменную $link будут попадать ссылки, которые имеют вид для получения ссылок которые мы видим при выдаче под анкорами, нужно использовать переменную $visiblelink. Это касается только блока рекламы.



Возможности(top)
  • Поддержка всех поисковых операторов Гугла(site:, inurl: и т.д.)
  • Парсит максимальное отдаваемое гуглом число результатов - 10 страниц по 100 элементов в выдачи
  • Может автоматически парсить больше 1000 результатов на запрос - подставляет дополнительные символы(опция Parse all results)
  • Возможность поиска связанных ключевых слов
  • Поддерживает выбор страны поиска, города, региона, домена, языка результатов
  • Поддерживает указание времени выдачи
  • Возможность парсить по новостям и блогам
  • Можно указать парсить ли выдачу если гугл сообщает о том что по указанному запросу ничего не найдено и предлагает результаты по схожему запросу
  • Поддерживает отключение фильтра гугла по скрытию похожих результатов(filter=)
  • Возможность выбора языка интерфейса Google, выдача результатов в парсере и в браузере, при идентичных настройках, максимально идентична
Варианты использования(top)
  • Сбор баз ссылок - для A-Poster, XRumer, AllSubmitter и т.д.
  • Оценка конкуренции для кейвордов
  • Поиск беклинков(упоминаний) сайтов
  • Проверка индексации сайтов
  • Поиск уязвимых сайтов
  • Любые другие варианты подразумевающие парсинг гугла в том или ином виде
Примеры(top) Запросы(top)
  • В качестве запросов необходимо указывать поисковые фразы, точно так же как если бы их вводили прямо в форму поиска Гугла, например:

окна Москва
site:http://lenta.ru
inurl:guestbook

Нажмите, чтобы раскрыть...

Результаты(top)
  • В результате отображен список ссылок по запросам:

http://lenta.ru/
http://vesti.lenta.ru/
http://old.lenta.ru/
http://1991.lenta.ru/
http://vip.lenta.ru/
http://pda.lenta.ru/
http://3m.lenta.ru/
http://lm-3.lenta.ru/
http://aquarium.lenta.ru/magazine/
http://real.lenta.ru/
http://megafon.lenta.ru/
http://okna-rassvet.ru/
http://www.montblanc.ru/
http://www.probkiizokna.ru/
http://www.panorama-group.ru/
http://www.oknadoz.ru/
http://www.okna-darom.ru/
http://www.oknarosta.ru/
...

Нажмите, чтобы раскрыть...

Возможные настройки(top) Параметр Значение по умолчанию Описание
Links per page 100 Количество ссылок в выдачи на каждую страницу
Pages count 5 Количество страниц для парсинга
Google domain www.google.com Домен Гугла для парсинга, поддерживаются все домены
Results language Any language Выбор языка результатов(параметр lr=)
Search from country Global Выбор страны откуда осуществляется поиск(гео-зависимый поиск, параметр gl=)
Location (city) - Поиск по городу, региону. Можно указывать города в виде novosibirsk, russia; полный список локаций можно найти по ссылке . Также необходимо выставлять корректный домен гугла
Hide omitted results Определяет скрывать ли опущенные результаты(параметр filter=)
Serp time All time Время серпа(временно-зависимый поиск, параметр tbs=)
Serp type Main Определяет парсить с главной страницы, по новостям или блогам
Parse not found Определяет парсить ли выдачу если Гугл сообщил что по указанному запросу ничего не найдено и предложил выдачу по другому запросу
Use AntiGate Определяет использовать ли antigate для обхода каптч
AntiGate preset default Пресет парсера Util:AntiGate. Необходимо предварительно настроить парсер Util::AntiGate - указать свой ключ доступа и другие параметры, после чего выбрать созданный пресет здесь
Use digit captcha Включает принудительное использование цифровой каптчи
Use sessions Cохраняет хорошие сессии что позволяет парсить еще быстрее, получая меньшее число ошибок.
Interface language English Возможность выбора языка интерфейса Google, для максимальной идентичности результатов в парсере и в браузере

Все сталкивались с ситуацией, когда нужно собрать и систематизировать большое количество информации. Для стандартных задач по SEO-оптимизации сайта есть готовые сервисы , например, Netpeak Checker — для сравнения показателей конкурирующих сайтов или Netpeak Spider — для парсинга внутренней информации по сайту. Но что, если задача нетривиальна и готовых решений нет? Есть два пути: делать все руками и долго, или загнать рутинный процесс в матрицу, автоматизировать его и получать результат в разы быстрее. О таком кейсе и пойдет речь.

Что такое парсинг сайтов и зачем он нужен Kimono — мощный и быстрый в настройке скрейпер с интуитивно понятным интерфейсом. Позволяет парсить данные с других сайтов и позже обновлять их. Бесплатный.

Познакомиться поближе и получить краткий мануал об использовании можно (на русском) или на moz.com (на английском). Давайте попробуем спарсить что-нибудь хорошее с помощью Kimono. Например, дополним созданную нами таблицу с городами списком курортов в стране Города 2. Как это можно реализовать при помощи Kimono Labs. Нам понадобятся:

  • приложение для Google Chrome — Kimono;
  • таблица Google Docs.

1. Находим сайт с необходимой нам информацией — то есть перечнем стран и их курортов. Открываем страницу, откуда необходимо получить данные.

2. Кликаем на иконку Kimono в правом верхнем углу Chrome.

3. Выделяем те части страницы, данные из которых нам необходимо спарсить. Если нужно выделить новый тип данных на той же странице, кликаем на «+» справа от «property 1 » — так указываем Kimono, что эти данные нужно разместить в новом столбце.

4. Кликнув на фигурные скобки и выбрав «CSV », можно увидеть, как выбранные данные будут располагаться в таблице.

5. Когда все данные отмечены:

  • кликаем «Done » (в правом верхнем углу);
  • логинимся в Kimono, чтобы привязать API к своему аккаунту;
  • вводим название будущего АРI;
  • кликаем «Create API ».

6. Когда API создано, переходим в таблицу Google, куда хотим загрузить выбранные данные. Выбираем «Connect to Kimono » и кликаем на название нашего API — «Resorts ». Список стран и ссылок на страницы с курортными городами выгружается на отдельный лист.

7. Переходим снова на сайт, берем для примера Ирландию, и снова выбираем через Kimono города, которые необходимо спарсить. Создаем API, называем его «Resorts in countries ».

9. В «Crawl Strategy » выбираем «URLs from source API ». Появляется поле с выпадающим списком всех API. Выбираем созданное нами ранее API «Resorts » и из него автоматически загружается список URL для парсинга. Кликаем синюю кнопку «Start Crawl » (начать обход) и следим за статусом парсинга. Kimono обходит страницы, парсит данные по заданному ранее шаблону и добавляет их в таблицу — то есть делает все то же самое, что и для Ирландии, но уже для всех других стран, что ввели автоматически и без нашего участия.

10. Когда таблица сформирована, синхронизируем Kimono Labs с таблицей Google — точно так же, как делали это в шестом пункте. В результате, в таблице появляется второй лист с данными.

Предположим, хотим, чтобы в таблице отображались все курортные города в стране города прибытия. Данные на листах Kimono обрабатываем с помощью формул для таблиц Google, и выводим в строку список городов, где еще можно отдохнуть в Австралии, кроме Сиднея.

Например, это можно сделать так . Разметить массив данных (список городов), используя логические функции и возвращая значение ячейке, равное TRUE или FALSE. На примере ниже выделили для себя города, которые находятся именно в Австралии:

  • TRUE = город находится в Австралии;
  • FALSE = город находится в другой стране.

По меткам TRUE определяем начало и конец обрабатываемого диапазона, и выводим в строку соответствующие этому диапазону города.

По аналогии можем вывести курортные города и для других стран.

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

Результаты автоматизации

Как говорилось вначале, нам регулярно нужно составлять по 20 однотипных таблиц. Это рутинный процесс, съедающий по 40-50 минут на одну таблицу, и по 16 часов времени на каждые 20 шт. Согласитесь, 2 рабочих дня на одинаковые таблички — необоснованная трата времени. После автоматизации на одну таблицу уходит 5-10 минут, а на 20 — около 2 часов. Таблица имеет 17 ячеек, парсинг производится из 5 источников. Заполнение таблицы происходит автоматически при заполнении всего 2 ячеек с исходными данными.

Настройка и автоматизация парсинга суммарно заняла 30 часов времени, то есть потраченное время «окупится» уже на этапе генерации второй 20-ки таблиц.

Ни для кого из вас не секрет, что для продвижения сайтов нужны ссылки и желательно много и бесплатно. Где же их взять? Существует сайты, которые получают контент благодаря пользователям. Например, каталоги сайтов, статей и компаний. Базой называется собрание адресов таких сайтов.
Вне зависимости от того, какую базу вы собираете, можно найти сайты по соответствующим запросам в поисковых системах. Этот процесс называется парсингом выдачи . Обычно парсится Google и на это есть три причины:
1.Хорошее качество поиска
2.Высокая скорость ответа
3.Наличие оператора inurl :
Этот оператор имеет следующий вид inurl:«содержание url искомых страниц ». С помощью этого оператора можно искать конкретные движки сайтов. В Яндексе нет аналогов этому оператору.

Например, чтобы найти большую часть каталогов Made-Cat нужно в поисковой строке Google ввести запрос: inurl:"ext/rules" или inurl:"add/1" .

Правда, с использованием этого оператора нужно знать несколько моментов. Первое - для Google большинство спецсимволов - то же самое, что и пробел. Это плохо потому, что некоторые движки будут парситься с огромным количеством мусора. Например, в выдаче по запросу inurl:«xxx/yyy» можно встретить как страницы, содержащие «xxx?yyy», так и страницы, содержащие «xxx.yyy».
Второе - для многих запросов поисковик при использовании этого оператора показывает не всю выдачу как раз для того, чтобы ограничить дорвейщиков.
Иногда я запрос с оператором inurl заменяю запросом в виде -intext:"XXX" -intitle:"XXX" "XXX". Другими словами, мы говорим Google искать XXX, но не в тексте и не в заголовке, а кроме этого есть только URL. Правда, такая замена не равнозначна: если искомый XXX есть в заголовке или в тексте и одновременно в URL, то такая страница показана не будет.

При парсинге есть обычно две задачи:
1. Напарсить как можно больше URL.
2. Захватив при этом как можно меньше мусора - страниц, которые нам не нужны.

Для решения первой задачи используется следующим метод. Например, по запросу «XXX» выдается только 1000 сайтов, а в Интернете их, скажем, полмиллиона. Чтобы увеличить выдачу, добавим в к основному запросу(ам) «бесполезные» уточнения:
«XXX» фирма
«XXX» компания
«XXX» найти
«XXX» сайт
«XXX» страница
«XXX» главная
В качестве уточнения берем общеупотребительные слова, которые могут встретиться на любом сайте. Хотя более полезно сайты разделять на непересекающиеся категории: только английский, только русский, только украинский. Либо добавлять поиск по зоне домена inurl:«.com», inurl:«.net»… Возьмем, например, запрос «каталог». Страниц в интернете с таким словом 209 000 000, но нам выдается не больше 1000. Используя шесть запросов
1.Каталог inurl:«.com»
2.Каталог inurl:«.net»
3.Каталог inurl:«.biz»
4.Каталог inurl:«.ru»
5.Каталог inurl:«.info»
6.Каталог inurl:«.org»
Мы получим не 1000, а 6000 каталогов. Применив находчивость, можно получить несколько десятков тысяч URL. Но большинство будет мусором.

Порой проблемы с мусором весьма существенные, потому приходится перед парсингом качество выдачи по каждому запросу проверять вручную, чтобы автомат не захватил много ненужных сайтов, а вы потом не мучились, проверяя их. Помогает нахождение «полезных» уточнений.
Например, при запросе inurl:"add/1" можно наблюдать много мусора, этому нужно добавить уточнение inurl:"add/1" "URL вашего сайта" . Можно пойти дальше и отфильтровать «серые» каталоги «inurl:"add/1" "URL вашего сайта" -"URL где стоит ссылка"»

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

Использование бесплатного десктопного парсера

Программа не требует установки и поэтому пользоваться ей можно сразу после закачки.Работает программа только с Google и обладает спартанским интерфейсом, но, как говорится, «дареному коню в зубы не смотрят».

1.Поле ввода запросов. Сюда нужно ввести список запросов к Google, например, inurl:«xxx» (обратите внимание на то, что оператор и запрос пишутся без пробела).
2.Поле ввода-вывода URL запросов к Google. В этом поле будет появляться, какие URL Google парсятся при выполнении запросов. При желании можно самому сюда ввести список urls Google, которые нужно отпарсить. К примеру: «http://www.google.com.ua/search?hl=ru&q=XXX&btnG=%D0%9F%D0%BE%D0%B8%D1%81%D0%BA+%D0%B2+Google&meta=»
3.Поле вывода результа – URL сайтов, которые нашлись.
4.Процент выполненения задачи
5.Фильтр на парсинг только русскоязычных сайтов
6.Задержка в тысячных долях секунды. От 0 до 60 000. Задержка нужна, чтобы гугл не понял, что его парсит программа и не заблокировал вам доступ к ресурсам.
7.Кнопка «Поехали» запускает парсинг.
8.Показывает страницу, которая парситься в данный момент. Пользы особой нет, скорее для развлечения.

Дополнительно над полем ввода запросов (1) есть кнопка «преобразовать», которая преобразует запросы inurl:«XXX» в -intext:"XXX" -intitle:"XXX" "XXX"

Как пользоваться программой? Ввести в левое поле ввода(1) список запросов, подождать и копировать из правого поля ввода(3) результат. Потом отчистить дубли доменов, например, с помощью http://bajron.od.ua/?p=67. Реузльтаты хранятся в формате списка URL найденных сайтов.
Программа избавляет от большей части рутинной работы и парсит намного быстрее человека.

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

На сервере у нас один IP. Можно докупить еще, но зачем? У нас же еще есть IP"шки клиентов, которые к нам заходят.
Сервер - машинка слабая (в сравнении с клиентскими компами), а брать мощный сервер дорого. Почему бы не использовать мощность зашедшего посетителя, у него в разы больше памяти и вообще...

Можно пилить не на серверном php, а на браузерном JS. Сие значит - все будет происходить по большей части в браузерах, а не на сервере. Так, сервис сможет работать даже на нищебродском бесплатном хостинге. Памяти хватит на любое количество потоков (свою память мы почти не тратим), да и капчи будут лезть для каждого клиента индивидуально (в зависимости от аппетита с его IP).

Сначала я попробовал подгружать гуглю через iframe - не получилось (в заголовках ответа сервера такое запрещено). Только в древнем IntrenetExplorer6 так можно - он не поддерживает запрета (но IE6 это древний ненужный недобраузер).

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

Вот кусок кода оттуда с моими русифицированными комментами
Код:



google.load("search","1") //гловское загрузить (поиск, 1 версии)

//все внути функции (назвать можно как хочется)
function i_want_find(){ //я обозвал "найти все что я хочу"
var searchControl=new google.search.SearchControl(); //создаем новый контроль поиска

//искать в регионе (задается ниже по коду)
var localSearch = new google.search.LocalSearch();
searchControl.addSearcher(localSearch);

//поиски (какие хотим) - ненужное убрать
searchControl.addSearcher(new google.search.WebSearch()); //обычный такой поиск в гугле
searchControl.addSearcher(new google.search.VideoSearch()); //искать видяхи
searchControl.addSearcher(new google.search.BlogSearch()); //рыться в блогах
searchControl.addSearcher(new google.search.NewsSearch()); //найти повод для полит-срача в новостях
searchControl.addSearcher(new google.search.ImageSearch()); //поиск картиночек
searchControl.addSearcher(new google.search.BookSearch()); //книжки можно найти
searchControl.addSearcher(new google.search.PatentSearch()); //поиск патентов (даже их)

//задаем регион поиска для "искать в регионе" (смотри выше где используется)
localSearch.setCenterPoint("New York, NY");

//куда надо выводить результаты (я выведу в div с id="vihlop")
searchControl.draw(document.getElementById("vihlop"));

//повеливаю исполнить запрос и найти наше RuSeo
searchControl.execute("сайт");
}

Google.setOnLoadCallback(i_want_find); //каллбэк длинной функции описанной выше

Дальше можно крамсать используя селекторы jQuery, а потом слать результаты на наш сервер.
Сохранять итоги проделанного парсинга будем у нас на сервере (чтобы хитропопый юзер не догадался скопипастить себе JS и пользоваться им без нашего сервиса).

Яндекс такого не дает.

Или я плохо искал. Есть конечно но там требуется рега и получение ключа для своего IP. Или заставлять юзеров получать ключи, или реализовывать на своем сервере.
Во втором случае плохо все: от того что нам понадобится сервер помощнее, до ограничения яндексом количества запросов (за расширение просят платить).
Короче, яндекс опять отстой.

У кого есть идеи "что парсить будем"? Я вообще искал технологию чтобы кэш гугла открывать без php, а описанным выше я такого проделать не смог.