Этот пост продолжает серию статей с рецептами применения A-Parser: комплексные примеры с одновременным использованием различного функционала парсера. Помимо детального разбора заданий можно также оценить скорость обработки запросов и скачать результаты парсинга
Добавлена опция Follow links позволяющая выбрать порядок следования по ссылкам: только по внутренним, по внутренним и внешним, только по внешним
Добавлен массив результатов $followlinks, который содержит ссылки для последующего перехода, над этим массивом можно применять фильтры и конструкторы результатов, что позволяет переходить только по определенным ссылкам(например только по топикам форумов)
Добавлена корректная обработка тега <base href=
Другие улучшения
Теперь парсер автоматически определяет кодировку по содержимому страницу, если другие методы не дали результатов. В случае если кодировку определить не удается и она не является корректной с точки зрения UTF-8 то содержимое страницы становится недоступным для обработки. Данное улучшение призвано исправить редкие проблемы когда файл результата A-Parser'а невозможно использовать в качестве запросов, т.к. файл мог содержать...
В данной версии добавлена поддержка обработки и фильтрации результатов(Parse custom result, Конструкторы результатов и фильтры) на многоядерных процессорах, что в несколько раз увеличивает скорость парсинга при использовании "тяжелых" регулярных выражений, например скорость сбора email адресов со страниц достигает 10000 ссылок в минуту при 2000 потоках(при этом A-Parser обрабатывает поток 130 мбит\с gzip-сжатых данных)
Другие улучшения
Добавлена возможность указать сразу несколько форматов для запроса, что позволяет комбинировать множество вариантов подстановок для одних и тех же запросов в одном задании
Добавлена возможность использовать формат запроса на всех уровнях вложенного парсинга, например при парсинге ключевых слов с подсказок Google подстановки будут добавляться так же и для новых найденных ключевых слов(как и для исходных запросов)
Этот пост начинает серию статей с рецептами применения A-Parser: комплексные примеры с одновременным использованием различного функционала парсера. Помимо детального разбора заданий можно также оценить скорость обработки запросов и скачать результаты парсинга
В примере рассказано как определить используемый движок у сайтов из базы Алексы топ-миллион, результат автоматически сортируется по файлам с названием CMS. Также дан пример как увеличить скорость обработки и проверить 1 миллион доменов всего за 2 часа
Немного статистики:
Скорость парсинга составила 1100 доменов в минуту
Всего определились 301841 из 1000000 доменов как использующие на своей главной странице одну из популярных CMS, форумов или Wiki
Определено 126 различных CMS
Топ 10 самых популярных CMS, первое значение определяет количество доменов:
Появилась возможность ограничивать общее потребление потоков, что позволяет пропускать задания превышающие текущее потребление, давая возможность выполнится заданиям с меньшим числом потоков. Также данный функционал полезен при использовании прокси-сервисов с лимитированным числом подключений, тем самым можно гарантированно не выходить за пределы тарифа
В очереди заданий теперь можно удалить все задания разом, отдельно для активной очереди и очереди завершенных заданий
Парсер SE::Yandex теперь поддерживает работу с аккаунтами(опция Use Accounts)
При парсинге рекламы в SE::Google теперь дополнительно можно вывести позицию рекламного блока(сверху или справа), а также номер страницы выдачи, на котором показано рекламное объявление
Исправления
Исправлено отображение русских имен файлов запросов и результатов на ОС Linux