4 место Быстрый парсер RU + ENG текстового контента на Get-запросах

orka13

Client
Регистрация
07.05.2015
Сообщения
2 190
Реакции
2 209
Баллы
113
Parser_Content_RU_ENG_by_orka13_Logo.png


Область применения:
Делать потом «сайты\сателлиты\дорвеи\странички в соцсетях» на «копипасте\мешанке\генеренке\переводе» на основе этой текстовки.

Алгоритм работы:
1. Шаблон берет случайную строку из файла-списка «\Input\Useragents.txt», если файла нет, то генерирует значение.
2. Берется первая строка (с удалением) из файла-списка «\Input\Urls.txt».
3. Одним Get-запросом парсится код страницы, и данные подстраиваются под нужную кодировку, по типу как в этой теме.
4. Дальше шаблон работает в двух режимах на выбор:
4. A) Вытаскивает текст из HTML-кода с помощью множества регулярок, под каждый язык свой блок. Метод мой, оттачивался годами. Может какие-то действие не очень умно продуманы, так как шаблон начинал писать еще во времена минимальных знаний, да и не кодер я, балуюсь. Но все работает, дорвейщики пользуются не жалуясь :-).
Текст прогоняется через фильтры (регулируются на вкладке «#1» во «Входных Настройках» проекта). Каждое новое предложение идет с новой строки с сохранением порядка, в итоге получается так, что что границы абзацев исчезают, немножко печалька. 99% мусорного текста исчезает.
Работает только с RU/EN языками, для других языков надо уже чуть ручками подправить C# блок с регулярками.
4. Б) Активируется на вкладке #4 во «Входных Настройках». Вытаскивает текст из кода с помощью библиотеки Boilerpipe.Net.
Регулярки не применяются. Ограничения по языкам нет. Режимы из настройки #4.3 кратко описаны в исходниках. Структура абзацев остается, но не всегда. Метод вовсе не идеален, только недавно его подключил. Явно нужна пост-обработка фильтрами, иногда проскакивает голый HTML-код. Учитывая, что в этом режиме скорость обработки в 5 раз меньше, то для себя не вижу смысла возни с ним. Если очень нужна аккуратная структуризация как в статье донора, то лучше уж тогда переделать шаблон на парсинг через онлайн-сервисы, вопрос мной поднимался на форуме. Тот же демо сайт boilerpipe выдаёт гораздо чище текстовку с возможностью сохранения HTML-разметки, и подобных сервисов немало. Гуглил почему эта офлайн библиотека гораздо хуже работает, ответов нет, только такие же вопросы от возмущенных пользователей.

Скрины для сравнения скорости обработки (не смотрите на память, шаблон ее практически не использует, это другой софт нагружает). При тех же пиковых нагрузках на CPU по графику нагрузки сети видно, что с библиотекой шаблон медленнее парсит (~3 мбит\секунду), тогда как на регулярках ~15 мбит:


Сравнение парсинга одного и того же списка на 100 ссылок разными алгоритмами. Если каких-то ссылок нет в документе, значит там не набралось достаточно текста:
4. A) Url_Text_EN_Regex
4. Б) Url_Text_EN_Boilerpipe

is1.png


is2.png


is3.png


is4.png


В архиве идет шаблон («Parser_Content_RU_ENG_by_orka13__Ver_1.01.xmlz»), пример файлов с результатами первого режима с активированными всеми опциями на вкладке "3. Логи"...
Dir.png
...и папка «ExternalAssemblies», в которой необходимые для работы библиотеки Boilerpipe. Ели если нет охоты возится с Boilerpipe, то в архиве найдете версию шаблона «Parser_Content_RU_ENG_by_orka13_Lite__Ver_1.01.xmlz» без нее (и без вкладки #4).

Содержание моей «ExternalAssemblies» закиньте в «ExternalAssemblies» своего ZennoPoster, например, у меня это:
c:\Program Files (x86)\ZennoLab\RU\ZennoPoster Pro\5.14.0.0\Progs\ExternalAssemblies\
Заметьте, что Boilerpipe.Net по умолчанию работает только со старым «HtmlAgilityPack.dll 1.4.9 (09.2014)», так что используйте именно тот что в моей папке. Сам Boilerpipe.Net.dll компилировался мной в Microsoft Visual Studio 2017 (на 2015 по умолчанию не хочет), тестировался в шаблоне на ОС Windows 10 x64 + ZennoPoster 5.14.0.0.
Скачать шаблон архивом (или в прикрепленных файлах облегченная версия архива без файлов с результатами).
UPD: 27.02.2018: Ver_1.02. Добавил C#-кубик конвертации нестандартных доменных имен (IDN *.рф и т.д.) в Punycode, подправил мелкий косяк «в кубике сохранения результата на английском - RU в имени файла».
 
Тема статьи
  1. Парсинг

Вложения

Последнее редактирование:
Подскажите ПЖЛ почему просит привязку? - как будто шаблон закрыт. Он открытый?
 
  • Спасибо
Реакции: orka13
  • Спасибо
Реакции: garat
  • Спасибо
Реакции: orka13
СПС за шаблон - ждал

вопрос еще

"Ели если нет охоты возится с Boilerpipe, то в архиве найдете версию шаблона «Parser_Content_RU_ENG_by_orka13_Lite__Ver_1.01.xmlz» без нее (и без вкладки #4)."

в версии Lite также присутствует вкладка 4 - возможно кого собьет с толку в визуальном плане - но не критично думаю
 
  • Спасибо
Реакции: orka13
СПС за шаблон - ждал

вопрос еще

"Ели если нет охоты возится с Boilerpipe, то в архиве найдете версию шаблона «Parser_Content_RU_ENG_by_orka13_Lite__Ver_1.01.xmlz» без нее (и без вкладки #4)."

в версии Lite также присутствует вкладка 4 - возможно кого собьет с толку в визуальном плане - но не критично думаю
Спс, исправил. Вижу надо было лучше утром стартовать, а то сейчас невнимателен.
 
  • Спасибо
Реакции: garat
Потестил шаблон, очень шустрый. Только Я не пойму в чем смысл вытаскивать не уникальный текст ?
 
Потестил шаблон, очень шустрый. Только Я не пойму в чем смысл вытаскивать не уникальный текст ?
Делать «сайты\сателлиты\дорвеи» на «копипасте\мешанке\генеренке\переводе» на основе этой текстовки.
 
  • Спасибо
Реакции: orka13
Orka13, спасибо за статью! )
Полезно и интересно будет изучить.
Для полноты картины напрашивается еще вторая статья на тему "Сбор ссылок на страницы сайтов по ключевым словам из ПС" )))
 
  • Спасибо
Реакции: orka13
Orka13, спасибо за статью! )
Полезно и интересно будет изучить.
Для полноты картины напрашивается еще вторая статья на тему "Сбор ссылок на страницы сайтов по ключевым словам из ПС" )))
Ну откуда то я же брал ссылки :-), - есть под это быстрый парсер Bing в коллекции. Выложу платную версию на днях, если будет время.
 
  • Спасибо
Реакции: Danny
Ну откуда то я же брал ссылки :-), - есть под это быстрый парсер Bing в коллекции. Выложу платную версию на днях, если будет время.
Зря вы на Bing смотрите - у него shadow бан(выдача перестает соответствовать запросу - подсовывается всякая хрень) применяется при превышения лимитов запросов. Да Конечно можно прокси и генирить аноним - но тогда можно и традиционные ПС использовать. Преимущество теряется у Бинга в таком случае
 
Последнее редактирование:
а где находить url со статьями?
 
а где находить url со статьями?
может файл со статьями?
В настройках шаблона на вкладке №3 включите все чекбоксы и смотрите какой вариант файла после обработки вам больше подходит. Ну или под себя сформируйте как сохранять в итоге текст статьи, шаблон же открытый.
 
для каких целей ето чудо применяется ? не написано куда и что и как .
 
  • Спасибо
Реакции: ftbwork10 и orka13
для каких целей ето чудо применяется ? не написано куда и что и как .
в комментах упоминалось уже:
Делать «сайты\сателлиты\дорвеи» на «копипасте\мешанке\генеренке\переводе» на основе этой текстовки.
UPD: добавил в стартпост.
 
Последнее редактирование:
небольшая помарочка - в кубике сохранения результата на английском - RU в имени файла
UPD: 27.02.2018: Ver_1.02. Добавил C#-кубик конвертации нестандартных доменных имен (IDN *.рф и т.д.) в Punycode, подправил мелкий косяк «в кубике сохранения результата на английском - RU в имени файла».
 
  • Спасибо
Реакции: Сибиряк
Если не секрет, чем рерайтите?
 
Если не секрет, чем рерайтите?
В статье нет ни слова о рерайте. Но если задуматься о нем, как о некой машинной быстрой уникализации с минимальным искажением читаемости, то здесь подойдут:
1. Синонимайзеры, которые заменяют слова близкими по смыслу аналогами из своей базы.
2. Реверсный перевод. Это когда берем текстовку, переводим в похожий язык, а потом обратно переводим в язык оригинала. Бреда в 2 раза больше, чем при обычном переводе, но такой бред еще более-менее читаем, и синтаксически правильно выглядит. Платный шаблон-переводчик для массовой работы у меня в подписи :).
 
Orka13, спасибо за статью! )
Полезно и интересно будет изучить.
Для полноты картины напрашивается еще вторая статья на тему "Сбор ссылок на страницы сайтов по ключевым словам из ПС" )))
Ну откуда то я же брал ссылки :-), - есть под это быстрый парсер Bing в коллекции. Выложу платную версию на днях, если будет время.
Зря вы на Bing смотрите - у него shadow бан(выдача перестает соответствовать запросу - подсовывается всякая хрень) применяется при превышения лимитов запросов. Да Конечно можно прокси и генирить аноним - но тогда можно и традиционные ПС использовать. Преимущество теряется у Бинга в таком случае
Этот конкурс прост кладезь шаблонов для дорвейщиков. Вот и бесплатный Парсер Bing выкатил @surrealmix. Да, в нем нет проверки на "shadow бан", нет настроек языковых параметров запросов, но все очень просто изложено, для новичков сойдет, халявно ведь!
 
Последнее редактирование:
  • Спасибо
Реакции: garat
Где можно прочитать, как правильно делать на Post и Get запросах*?
 
Где можно прочитать, как правильно делать на Post и Get запросах*?
Размытый вопрос. Конкретно в зенке? На кубиках или на C#?
Пробуйте обычным гугл-поиском:
Post и Get site:zennolab.com
Orka13, спасибо за статью! )
Полезно и интересно будет изучить.
Для полноты картины напрашивается еще вторая статья на тему "Сбор ссылок на страницы сайтов по ключевым словам из ПС" )))
Наконец то выкатил свой шаблон:
Продаю парсер выдачи Bing на Get-запросах с Cookie
 
Что-то иногда ошибка выходит
Выполнение действия CSharp OwnCode Название кодировки "cp-1251" не поддерживается. Сведения об определении пользовательских кодировок см. в документации на метод Encoding.RegisterProvider.
Имя параметра: name

ID ca018c7e-bef4-40a5-b46a-0954e25fab12
показывает на
http://prntscr.com/j32q9u

Что может быть то?
 
  • Спасибо
Реакции: orka13
Что-то иногда ошибка выходит


ID ca018c7e-bef4-40a5-b46a-0954e25fab12
показывает на
http://prntscr.com/j32q9u

Что может быть то?
А это C# не может обработать такое название кодировки, поскольку ее нет в базе (не по "ГОСТу" названа, лопоухие вебмастера и не такое на сайте пропишут), и в итоге ошибка. Подправил этот момент в шаблоне, добавил синонимов к поиску кодировок:
Код:
Развернуть Свернуть Копировать
if (charset == "windows-1251" || charset == "cp1251" || charset == "cp-1251" || charset == "cp_1251")
Перекачайте со стартпоста НЕ прикрепленный файл в конце (его не могу редактировать), а тот архив по ссылке что перед ним. В нем найдете новую версию шаблона 1.03. Там я еще чуть регулярки подправил, а то там лишнего нагорожено.
 
  • Спасибо
Реакции: gnomza75 и Сибиряк
А это C# не может обработать такое название кодировки, поскольку ее нет в базе (не по "ГОСТу" названа, лопоухие вебмастера и не такое на сайте пропишут), и в итоге ошибка. Подправил этот момент в шаблоне, добавил синонимов к поиску кодировок:
Код:
Развернуть Свернуть Копировать
if (charset == "windows-1251" || charset == "cp1251" || charset == "cp-1251" || charset == "cp_1251")
Перекачайте со стартпоста НЕ прикрепленный файл в конце (его не могу редактировать), а тот архив по ссылке что перед ним. В нем найдете новую версию шаблона 1.03. Там я еще чуть регулярки подправил, а то там лишнего нагорожено.
Супер)
 

Кто просматривает тему: (Всего: 0, Пользователи: 0, Гости: 0)