Cтатья - это краткий пересказ видео, кому как удобнее воспринимать материал.
- Минимальная версия A-Parser:
- 1.2
В данной статье будем собирать тематические домены по ключевой фразе (для примера возьмем "essay writing") из поисковой выдачи Google, будем парсить не ТОП 1000, а гораздо больше при помощи буквенных подстановок к запросу. Потом будем получать для доменов различные параметры:
Аналогичным способом можно парсить сайты по любой тематике (товары, медикаменты, кредиты и прочее) или например, можно будет определить дропов, по ключам выпарсить домены, посмотреть по whois какие домены свободны и получить еще дополнительные метрики-пузомерки для них.
- зарегистрирован домен или нет
- дата регистрации и дата окончания регистрации домена
- язык сайта
- title и description
- индекс качества сайта
- позицию в глобальном рейтинге Alexa
- cтрану с наибольшим числом трафика по Alexa
- позицию в рейтинге этой страны по Alexa
По нашему запросу получили 240 226 доменов через макросы подстановок к запросу {az:a:zzz}, но можно поставить {az:a:zzzz} что гораздо больше, а также есть возможность добавить много других вариантов подстановок (например, {num:1:100000} и {az:а:яяя}).
Скорость парсинга Google при наличии проксей A-Parser, при 100 потоках в среднем 160 запросов в минуту на момент написания статьи, в целом скорость может меняться как в большую, так и в меньшую стороны.
При использовании проксей nosok.org в 1000 потоков скорость в среднем будет больше 3000 запросов в минуту (скрин ниже).
1. Настраиваем первый пресет. В нем будем парсить поисковую систему Google. Выбираем парсер SE::Google.
Выбираем опцию Request retries (эта опция отвечает за количество повторных запросов, если прокси забанен или не работает). Устанавливаем значение, например 1000. Чем больше значение тем больше вероятность, что найдется рабочий прокси.
Выбираем опцию Pages count и Links per page (которые означают соответственно кол-во страниц и результатов на странице в поисковой выдаче). Так как нужно собрать максимум результатов, то устанавливаем 10 страниц и 100 результатов на странице.
Выбираем опцию Добавить уникализацию, будет происходить уникализация на выбранном результате. Устанавливаем в выпадающем списке переменную:(массив serp, link - ссылки из результата выдачи) и ТИП уникальности - Домен верхнего уровня (Уникализация будет идти по главному домену с учетом региональных, коммерческих, образовательных и прочих доменов, без учета поддоменов). Переключатель "Глобально" не устанавливаем, так как используется всего 1 парсер в данном случае. Подробнее про опцию уникальности можно прочитать в документации.Код:$serp.link
Нажимаем на кнопку Конструктор результатов. Выбираем переменную:p1 - это парсер первый, массив serp, линк - ссылки из результата выдачи Google. Тип устанавливаем Extract Domain (Выделение домена из ссылки), массив и значение соответственно установятся по умолчанию, но если необходимо, то их можно изменить.Код:$p1.serp.$i.link - Link
Значение Формат результата оставляем p1.preset.
Запрос размножаем при помощи макросов подстановок. Так как поисковые системы обычно не дают получить 1000 результатов из выдачи, в зависимости от запросов. К запросу добавляем:Код:{az:a:zzz}
В разделе Результаты пишем имя файла, куда будут сохраняться результаты.
Сохраняем пресет.
Запустим задание и пока оно работает будем составлять настройки второго задания.
2. Настраиваем второй пресет. Будем собирать параметры по доменам из доступных готовых парсеров.
Выбираем парсер Net::Whois и при помощи него собираем такие параметры как:
- зарегистрирован домен или нет - переменная $registered
- дата регистрации - переменная $creation_date
- дата окончания регистрации домена - переменная $expire_date
Код:$registered $creation_date $expire_date
Так как используем прокси, то выбираем опцию Request retries (Количество повторных запросов), устанавливаем значение 20. Так как серверы для определенных доменных зон не будут работать (их много, какие то ломаются периодически), а если будет значение например 1000, то скорость парсинга будет очень маленькая.
Чтобы добавить еще парсеры в пресет необходимо нажать на кнопку Добавить парсер.
Выбираем парсер HTML::TextExtractor::LangDetect. Данным парсером будем получать язык сайта (например, русский, английский и т.д.), переменная:Код:$lang
Так как в качестве запросов у нас будут домены без протоколов, а для данного парсера нужны домены с протоколами, то к нему добавляем опцию Query format и в значение пишемТеперь для этого парсера запросы будут с протоколом http://, если у какого то из доменов протокол https://, то будет происходить редирект.Код:http://$query
Добавляем третий парсер Net::HTTP. Этим парсером будем при помощи регулярных выражений получать с сайтов title и description.
Как и в предыдущем парсере добавляем опцию Query format и в значение пишемВыбираем функцию Использовать регулярку и применяем к переменнойКод:http://$queryПишем регулярное выражение для сбора titleКод:$dataФлаг выбираем is, тип результата указываем Простой и присваиваем переменную title для данного результата.Код:<title>(.*?)</title>
Проделываем тоже самое для получения description, пишем регулярное выражение:Код:<meta\s+name\s*=\s*['"]description['"]\s+content\s*=\s*(['"])(.*?)\1
Добавляем четвертый парсер SE::Yandex::SQI, при помощи него определяем индекс качества сайта в Яндексе. Переменную будем использовать для получения индекса качества сайта:Код:$sqi
Добавляем пятый парсер Rank::Alexa. Данным парсером получим следующие параметры:
- Позицию в глобальном рейтинге Алексы - переменная $rank,
- Страну с наибольшим числом трафика - переменная $country,
- Позицию в рейтинге этой страны - переменная $countryrank.
Чтобы вывести все результаты в таблицу формата CSV, необходимо воспользоваться инструментом форматирования CSV таблиц (которые можно легко импортировать в Excel или Google Sheet) $tools.CSVline (инструменты, которые доступны при использовании шаблонизатора). Внутри скобок перечислим запрос и переменные парсеров, значения которые хотим увидеть в результате:Код:$rank $country $countryrankКод:[% tools.CSVline(query, p1.registered, p1.creation_date, p1.expire_date, p2.lang, p3.title, p3.description, p4.sqi, p5.rank, p5.country, p5.countryrank) %]
В качестве запроса указываем файл с результатом работы первого пресета по сбору доменов.
Добавляем имя файла результата, например domain-parametr, так же меняем формат файла с .txt на .csv .
Сохраняем пресет. Указываем в качестве запросов файл с результатом работы первого задания и запускаем задание нажав на кнопку Добавить задание.
Мы получили следующий результат:
Возможны следующие варианты для расширения пресета, например:
Скачать второй пресет - https://a-parser.com/resources/372/
- узнать движок сайта
- запросить в Google количество страниц в индексе
- узнать первое и последнее появления в веб-архиве
- проверить наличие в роскомназдоре
- и многое другое (так как возможности парсера безграничны).
-
Вступайте в наш Telegram чат: https://t.me/a_parser Нас уже 2600+ и мы растем!Скрыть объявление
Парсинг тематических доменов по ключевой фразе из Google и получение различных параметров по доменам
Парсинг тематических доменов по ключевой фразе из Google и получение различных параметров по доменам
Метки: