- Регистрация
- 07.05.2015
- Сообщения
- 2 177
- Благодарностей
- 2 183
- Баллы
- 113
Область применения:
Делать потом «сайты\сателлиты\дорвеи\странички в соцсетях» на «копипасте\мешанке\генеренке\переводе» на основе этой текстовки.
Алгоритм работы:
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
В архиве идет шаблон («Parser_Content_RU_ENG_by_orka13__Ver_1.01.xmlz»), пример файлов с результатами первого режима с активированными всеми опциями на вкладке "3. Логи"...
Содержание моей «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.
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 в имени файла».
- Тема статьи
- Парсинг
Вложения
-
846,1 КБ Просмотры: 1 540
Для запуска проектов требуется программа ZennoPoster или ZennoDroid.
Это основное приложение, предназначенное для выполнения автоматизированных шаблонов действий (ботов).
Подробнее...
Для того чтобы запустить шаблон, откройте нужную программу. Нажмите кнопку «Добавить», и выберите файл проекта, который хотите запустить.
Подробнее о том, где и как выполняется проект.
Последнее редактирование: