Перейти к основному содержимому

HTML::TextExtractor - Парсинг контента (текста) с сайта

Обзор парсера

Обзор парсераHTML::TextExtractorHTML::TextExtractor парсит текстовые блоки с указанной страницы. Данный парсер контента поддерживает многостраничный парсинг (переход по страницам). Имеет встроенные средства обхода защиты CloudFlare и также возможность выбора Chrome в качестве движка для парсинга контента со страниц, данные на которых подгружаются скриптами. Способен развивать скорость до 2000 запросов в минуту – это 120 000 ссылок за час.

Кейсы по применению парсера

Парсинг текста через Chrome на примере lingualeo.com

Парсинг текста через Chrome на примере lingualeo.com
  1. Добавить опцию Engine, в списке выбрать движок Chrome (Slow, JavaScript Enabled).
  2. В качестве запроса указать ссылку на сайт, с которого требуется спарсить текст.
примечание

Данная опция может быть полезна в случаях, когда сайт подгружает основной текст скриптами по ходу загрузки страницы и при использовании HTTP (Fast, JavaScript Disabled) результат отсутствует или оказывается неполным.

Скачать пример

Как импортировать пример в А-Парсер

eJxtU01v2zAM/S9EDhsQJO1hF9/SYME6pHXXpqcgB8GmXa2ypOkjS2Hkv+/Jce2k
680kHx8fxeeWgvCv/sGx5+Ap27Zku2/KqORKRBVoSlY4zy6Vt/Rjc7fOsg0fwvdD
cKIIxgExYFsKb5bRbfbsnCwZRVkiZl1LnaK9UDEBihdnGqbjbjcljES3XxnXiDR6
Yq9nvY6h+CT2vDEoVlLxmF4huhdNYpyUInCqzqqO6MvXWTgkBlGWMkijhTpNSJuM
U5+1/NMp8sFJXQOP0En2KwhEOnBHkpJv7wq3NOliAk3s+n+deigLLvKUPNSuBLSU
Q6ESyqMiAzuBV8ttkoR8S0YvlFrzntUI6+hvolQlXn5Roem2b/wckv/HcRw2PB+F
s/x10DCwdNFNfjd2lWZtaiyuDdZWspEBsV+aqNNtrpB8ZbbDs90nWGMcD2N65n46
zGVZJw+MV1vYMXWxxsVlLpOF0ZWs895X78ioN3BwrpemsYrTXjoqhat4fhwdsvD9
GVIwCvzYvOxGXHg/GKP8z6eTVOskHPgtCWzwkudTe8pCKPX8uD6v0OgoBC8hWJ/N
5wpWi0KxmRWmmbs4p9QcuDZwFVY77ob/bvg720//vqw94mi//cMJnTZMWOTwVB4X
oez6+A9VbWHX

Парсинг текста с переходом по страницам на примере новостей

Парсинг текста с переходом по страницам на примере новостей

Результаты сохраняются в директории aparser/results/example/textextractor в отдельный файл для каждого запроса. В качестве имени указывается порядковый номер запроса.

  1. Добавить опцию Check next page, в качестве регулярки указать (forum\/news\/page-\d+)"[^>]+>Вперёд.
  2. Добавить опцию Page as new query.
  3. Изменить Имя файла на example/textextractor/${query.num}.txt.
  4. В качестве запроса указать ссылку на первую страницу с новостями A-Parser: https://a-parser.com/forum/news/.
Скачать пример

Как импортировать пример в А-Парсер

eJx1VN1v2jAQ/18sHjaVEtjoSx4qUVS0TRRoS58Ik6zkQj0c27UdPhTlf9/ZCQmw
7sXJne/jd7+7c0EsNVuz0GDAGhKuCqL8PwnJ44FmikMYLuFgHw9W09hKHYYzFBd0
A6RLFNUGtPNbkR/Lp+mVLVokkNKcW9ItiD0qwLBSWSaFwTuWoBi/Q7w9C7mjPHdm
X1Kp8yyKAgF7gx+F17dRlNx8jcjq9/365j7K+8PBN3d+T/15585h3513A68ZYkCa
JMxlpJyExWW6KcuYq7RPyvK/AF3ikZnB/jkHfWwRWp3DdfQtgPJmU9gBavpluV53
CTKKHJiJ1Bl1+Tpq0Ktpbi5f6Q6WEi9TxqFVT1Ca0czhgqofgUX0cKI46BQfLmFP
5FnZswd7UXGV0fWnRfEm2IdnWEi0dc4MzETLDFUubq08ntCuSMfLBEPk3ve58iFh
SrlBDgxCn1AEmlzfMAuaIsp5TSlSJMWIc09Pa+bjP+SMJzhMoxSdftaOn5vM/4lR
NuWdp9qB3mvE0ETx0sP8qfVK5FRuTmRwNw8om7HMRTUYXd/ThrOZM8ukhiZNHbnO
joukQLixaVs4Uq3qooyLtlwqYylStpljAZolcLLMxRK3dS7G0g2Cq0vknGNbDLy0
4zIydRuc0AK8dh77FAirWVFipeTm12sFVWmG43jnAGbI5HnWOmRMOX97mZ7fkHak
UHi3VpkwCOht9VD0YpkFfq/9VgfExbCwkThdWGG5bl6U5kEqPn1XwgIXlvwxi8ra
FepsUYeMGWwMCQflX6y1tO0=

Собираемые данные

  • Парсит текстовые блоки с указанной страницы
  • Массив со всеми собранными страницами (используется при работе опции Use Pages)

Возможности

  • Многостраничный парсинг текста (переход по страницам)
  • Автоматическая очистка текста от HTML тегов
  • Возможность задать минимальную длину текстового блока
  • Опциональное удаление ссылочных анкоров из текста
  • Поддерживает сжатия gzip/deflate/brotli
  • Определение и преобразование кодировок сайтов в UTF-8
  • Обход защиты CloudFlare
  • Выбор движка (HTTP или Chrome)

Варианты использования

  • Парсинг текстового контента с любых сайтов

Запросы

В качестве запросов необходимо указывать ссылки на страницы, с которых необходимо спарсить текстовые блоки, например:

https://a-parser.com/

Варианты вывода результатов

A-Parser поддерживает гибкое форматирование результатов благодаря встроенному шаблонизатору Template Toolkit, что позволяет ему выводить результаты в произвольной форме, а также в структуированной, например CSV или JSON

Вывод по умолчанию

Формат результата:

$texts.format('$text\n')

Пример результата:

Здравствуйте, Супер Команда Высочайших Профессионалов своего Дела! Спасибо за возможность изучения Испанского, Турецкого и Португальского языка! Желаю Вам дальнейшего расширения Ваших Возможностей! Вдохновения и Творчества! И просьба добавить Возможность изучения Немецкого и Французского языка!”
Использую лингвалео уже многие годы, первый раз начал заниматься еще когда приложения не было совсем, был только сайт) Спасибо разработчикам, продолжайте в том же духе, с креативом и с большой любовью к делу)
Технический английский для IT: словари, учебники, журналы
Изучай языки онлайн Изучай английский онлайн Изучай вьетнамский онлайн Изучай греческий онлайн Изучай индонезийский онлайн Изучай испанский онлайн Изучай итальянский онлайн Изучай китайский онлайн Изучай корейский онлайн Изучай немецкий онлайн Изучай нидерландский онлайн Изучай польский онлайн Изучай португальский онлайн Изучай сербский онлайн Изучай турецкий онлайн Изучай украинский онлайн Изучай французский онлайн Изучай хинди онлайн Изучай чешский онлайн Изучай японский онлайн

Возможные настройки

Название параметраЗначение по умолчаниюОписание
Min block length50Минимальная длинна текстового блока в символах.
Skip anchor textПропускать ли анкоры в тексте.
Ignore tags listОпция для указания тегов, которые нужно игнорировать. Пример указания: div,span,p
Good statusAllВыбор какой ответ с сервера будет считается успешным. Если при парсинге будет другой ответ от сервера, то запрос будет повторен с другим прокси.
Good code RegExВозможность указать регулярное выражения для проверки кода ответа.
MethodGETМетод запроса.
POST bodyКонтент для передачи на сервер при использовании метода POST. Поддерживает переменные $query – URL запроса, $query.orig – исходный запрос и $pagenum - номер страницы при использовании опции Use Pages.
CookiesВозможность указать cookies для запроса.
User agent`_Автоматически подставляется user-agent актуальной версии Chrome_Заголовок User-Agent при запросе страниц.
Additional headersВозможность указать произвольные заголовки запроса с поддержкой возможностей шаблонизатора и использованием переменных из конструктора запросов.
Read only headersЧитать только заголовки. В некоторых случаях позволяет экономить трафик, если нет необходимости обрабатывать контент.
Detect charset on contentРаспознавать кодировку на основе содержимого страницы.
Emulate browser headersЭмулировать заголовки браузера.
Max redirects count7Максимальное кол-во редиректов, по которым будет переходить парсер.
Max cookies count16Максимальное число cookies для сохранения.
Bypass CloudFlareАвтоматический обход проверки CloudFlare.
Follow common redirectsПозволяет делать редиректы http <-> https и www.domain <-> domain в пределах одного домена в обход лимита Max redirects count.
EngineHTTP (Fast, JavaScript Disabled)Позволяет выбрать движок HTTP (быстрее, без JavaScript) или Chrome (медленнее, JavaScript включен).
Chrome HeadlessЕсли опция включена, браузер не будет отображаться.
Chrome DevToolsПозволяет использовать инструменты для отладки Chromium.
Chrome Log Proxy connectionsЕсли опция включена, в лог будет выводиться информация по подключениям chrome.
Chrome Wait Untilnetworkidle2Определяет, когда страница считается загруженной. Подробнее о значениях.
Use HTTP/2 transportОпределяет, использовать ли HTTP/2 вместо HTTP/1.1. Например, Google и Majestic сразу банят, если использовать HTTP/1.1.
Bypass CloudFlare with Chrome(Experimental)Обход CF через Chrome.
Bypass CloudFlare with Chrome Max PagesМакс. кол-во страниц при обходе CF через Chrome.