Закрыто

[ZennoPoster] Парсер Email с сайтов и их страниц (многопоток, Get-запросы, паук)

Тема в разделе "Бизнес и свое дело", создана пользователем orka13, 19 мар 2018.

Цена: 8132р.
Взнос: 900р.
57%

Основной список: 19 участников

Резервный список: 1 участников

Статус обсуждения:
Комментирование ограничено.
  1. 19 мар 2018
    #1
    orka13
    orka13 ЧКЧлен клуба (А)

    Складчина: [ZennoPoster] Парсер Email с сайтов и их страниц (многопоток, Get-запросы, паук)

    [​IMG]

    Технические особенности шаблона:
    Шаблон делался в ProjectMaker RU 5.14.0.0. Стоит ограничение по запуску минимум 5.9.9.1, но как поведет себя на старых версиях ZennoPoster – хз. Закрытого типа (только выполнение). Если у вас нет ZennoPoster, то можно выписать лицензию вместе с Zennobox (мини -версия ZennoPoster), но это стоит +10$ к цене шаблона.
    Шаблон обрабатывает http\https адреса с авто-определением кодировки ответа. Понимает «301 редирект», и при его нахождении для определения внутренних страниц использует как старый, так и новый адрес. Есть поддержка Punnycode.
    Для умного поиска абсолютных и относительных ссылок на внутренние страницы сайта используется свой алгоритм «паука» на основе C#-библиотеки HtmlAgilityPak.
    Шаблон ищет внутренние страницы только в пределах одного клика от той страницы, с которой начался парсинг. Также он не выполняет скрипты на странице, поскольку для достижения максимального быстродействия он работает на чистых запросах без подключения браузера. В итоге получаем максимальное быстродействие, но пропускаем незначительный процент хитрых сайтов, где может стоять защита от парсинга почты: когда почта появляется только при обработке страницы в браузере или при дополнительных условиях (движении мышки, скроллинг страницы, клик пользователя на кнопке «Показать почту» и т.д.).

    Алгоритм работы:
    Шаблон получает урл из списка и получает Get-запросом HTML-код страницы. Ищет в нем почту. Если найдено почт меньше чем указано в настройке «#1.3», то шаблон ищет нужное количество (указывается в настройке #1.1) внутренних страниц. При этом он берет не случайные ссылки, а отдает предпочтение сначала ссылкам с признаками «контактной страницы» как в урле, так и в тексте ссылки (анкоре). После формирования списка внутренних страниц идет по очереди парсинг каждой страницы на наличие email. В финале полученный список email чистится от дублей, от мусора и сохраняется в файл результатов.

    О файлах:
    Все файлы должны быть строго в кодировке «UTF-8» (Юникод)!!! Желательно с BOM (с сигнатурой), хотя сойдет любой вариант.
    1. «\Input\Urls_UTF-8_!!!.txt» - сюда залить строки с ссылками на парсинг. Каждый поток шаблона берет с удалением первую строку, и после окончания ее обработки (и дочерних страниц, если настройки позволяют), опять вырезает 1 строку, и так по кругу. Потоки остановятся только когда опустеет этот файл, или можете переименовать файл для преждевременной остановки процесса.
    2. «\Input\Список отсева плохих email.txt» - тут можете задать список неподходящих ников (например, badnick@) или доменов (например, @mail.ru). Каждое значение с новой строки. Шаблон по очереди берет каждую строку и проверяет нет ли вхождения (регулярки не поддерживаются) этой строки в найденной email. Если есть, то этот email отбрасывается из обработки и в финальный отчет не попадает. Если не нужно использовать этот список, то оставьте файл пустым, или переименуйте.
    3. «\Input\Рулярка отсева плохих email.txt» - тут можете подкорректировать мою регулярку для удаления неподходящих email, но крайне не советую ее трогать, есть нет навыков работы с Regex. Если вдруг не нужно использовать эту регулярку, то оставьте файл пустым, или переименуйте.
    4. «\Input\Useragents.txt» - обычный список Юзерагентов используемых при Get-запросах. Лучше не трогать.
    5. «\Output\Url_Mail.txt» - файл с результатами в формате «Ur[разделитель]Email».
    6. «\Temp_data\Url_Main_Bad.txt» - файл с ссылками из «Urls_UTF-8_!!!.txt», которые не получилось обработать (обычно случается, когда сайт недоступен, или защита от парсинга).
    7. «\Temp_data\Url_Sub_Bad.txt» - файл с внутренними ссылками, которые не получилось обработать.

    Для тестирования работы шаблона я решил прогнать всю базу существующих сайтов в доменной зоне «RU» (5 305 046 шт. на момент старта). Парсинг проходил именно с теми настройками что на скриншоте, в 100 потоков. По времени заняло все приблизительно 120 часов. Нагрузка сети ~30-50 Мегабит, CPU ~50-80%, RAM ~400 Мегабайт. Пример нагрузки видно на видео.
    Сама база присутствует в соседней складчине:
    База Email-адресов всех RU-сайтов: 2,3 млн. e-mail

    Шаблон делал под себя. Не для рассылки, а для дополнения почтовыми данными базы Яндекс.Карт. Там же и попросили выложить отдельно этот парсер.

    Запускать шаблон теоретически лучше не больше чем в ~130 потоков, или так чтобы нагрузка на ваш CPU не превышала 80% (просто рекомендация). У меня практика показала, что даже если и добавить больше потоков, то скорость обработки не увеличится. Хотя все зависит от режимов работы и мощности железа. Колебание скорости реальной работы очень легко анализировать по графику нагрузки сети (у меня в районе 40 мбит\секунду идет нагрузка). Если вы видите, что после прибавления потоков график уже не особо растет, значит не смысла ставить больше, ибо достигнут физический предел.

    Скрытая ссылка

    [​IMG]

    Пример случайной выборки из результатов работы шаблона на 10 000 строк:



    Видео первого запуска шаблона:


    UPD:
    Отзывы
    [​IMG] [​IMG] [​IMG]
    [/QUOTE]
     
    Последнее редактирование модератором: 23 май 2018
    3 пользователям это понравилось.
  2. Последние события

    1. skladchik.com
      Складчина закрыта.
      8 мар 2021
    2. bosyk
      bosyk участвует.
      8 мар 2021
    3. SubscribeMail
      SubscribeMail не участвует.
      6 авг 2019
    4. SubscribeMail
      SubscribeMail участвует.
      6 авг 2019

    Последние важные события

    1. skladchik.com
      Складчина закрыта.
      8 мар 2021
    2. skladchik.com
      Складчина доступна.
      28 май 2018
    3. skladchik.com
      Складчина активна.
      26 май 2018
    4. skladchik.com
      Сбор взносов начинается 26.05.2018.
      24 май 2018
  3. Отзывы участников

    5/5,
    • 5/5,
      Работой организатора доволен
      Прекраснейший шаблон и особенно его автор orka13! Всё четко работает, удобно пополнять новыми почтами свои базы данных. На складчике, для этой задачи, не видел даже альтернатив. Очень рад такому приобретению, результаты парсинга помогают мне зарабатывать деньги :-)
      11 сен 2018
      2 пользователям это понравилось.
  4. Обсуждение
  5. 19 мар 2018
    #2
    Basill
    Basill ОргОрганизатор (А)
    А выборку можно ставить? или критерии поиска
     
  6. 19 мар 2018
    #3
    orka13
    orka13 ЧКЧлен клуба (А)
    Не совсем понял вопроса…
    Имеется ввиду может шаб ли по ключевым словам искать сайты в сети через Поисковые Системы, а уже потом парсить с них мейлы?
    - Нет, не умеет. Шаблону надо подсунуть уже готовый список с ссылками доноров.

    Есть у меня мощный парсер выдачи Bing под эту задачу, но еще не дошли руки выставить здесь. Он бы помог в такой ситуации.
     
  7. 20 мар 2018
    #4
    Sagittarius
    Sagittarius ОргОрганизатор
    Не особо поняла из описания, но, например из Мой Мир сможет парсить?
     
  8. 20 мар 2018
    #5
    analytic
    analytic ОргОрганизатор (А)
    А если это форум -парсятся емейлы со всех страниц? Или паук работает только по страницам связанными с контактной информацией?
     
  9. 20 мар 2018
    #6
    analytic
    analytic ОргОрганизатор (А)
    С какими лимитами работаешь? А то в последнее 2 года сложно стало парсить - прокси быстро в бан попадают.
    п.с. Bing просто продвигает платный API
     
  10. 20 мар 2018
    #7
    orka13
    orka13 ЧКЧлен клуба (А)
    Нет, не сможет. под такие задачи лучше поискать узконаправленные парсеры заточенные только под соц-сети. Там обычно нужны свои алгоритмы обхода защиты, то есть надо парсить не просто код страницы (как в моем парсере), а простукивать API сервиса, либо нужна целая цепочка запросов с передачей куки для получение заветного поля с email.
    Парсятся только страницы, ссылки на которые присутствуют в стартовой странице (которая бралась из файла «Urls_UTF-8_!!!.txt»). В старпосте указано это:
    Нет, не только. Просто, например, если вы указали лимит брать максимум 30 внутренних страниц, а на обрабатываемой странице 60 внутренних ссылок, то при составлении списка шаблон пытается сначала добавить в него все ссылки с признаками «контактной страницы», а потом уже добиваем список и другими внутренними ссылками, пока список не наберет 30 строк.
    Я под доры миллионы паршу через прокси, и все ок. Чуть попозже его выставлю, а то сейчас и так много авторских складчин открыл, надо по очереди их провести сначала.
     
    3 пользователям это понравилось.
  11. 20 мар 2018
    #8
    analytic
    analytic ОргОрганизатор (А)
    Это понятно....тут вопрос в конкретике. Будем ждать парсер bing.
    п.с. Сейчас и парсер Avito есть и рассылщик писем есть на складчике и темы где складчики за 5 часов работы зарабатывают в лучшем случае 200-300 рублей - всегда стоит вопрос в конкретных цифрах. Результат -расходники.
     
  12. 20 мар 2018
    #9
    intelligent man
    intelligent man ОргОрганизатор
    Дайте ссылку :)
     
  13. 20 мар 2018
    #10
    intelligent man
    intelligent man ОргОрганизатор
    @orka13
    Как я вижу по видео, результат сохраняется в формате csv, что хорошо. Но почему тогда вы нам скинули txt файл, где правда?
    Проблема многих программ, они дают этот файл пустым, типо сам заполни, это плохо. Вы так же делаете или там будет уже какой-то готовый список?
    Еще не ясно, как идет сбор ссылок с одного сайта? Как я понял, парсер собирает почты, потом подставляет их под один домен, если их много и удаляет дубли. Правильно?
    Есть такой парсер Крокодил, я замечал, что он косячно собирает почты. Часто добавляя лишние символы к реальному адресу, то есть неправильно обрабатывает код страницы. Например dgninfo@company.com где правильная часть выделенная жирным, остальное это часть кода, который не относится к почте. Вопрос, ваш парсер не делает такие косяки?
     
  14. 20 мар 2018
    #11
    orka13
    orka13 ЧКЧлен клуба (А)
    Если сравните формат содержание, то поймете, что этот тот же файл, просто расширение разное. Ибо когда я сохранял выборку рандомных строк через сторонний софт (Penguin), то сохранил в TXT формате. Если смотреть объективно, то между этими форматами (расширениями имени файла) нет разницы, главное начинка самого файла (кодировка, разделители).
    Да закину примерочный список на пару строк, чтобы покупатели не возились с созданием файла с нуля и не наделали косяков с кодировкой.
    Зачем подставлять? Мы же не ищем исключительно почты на почтовом домене сайта (ну типа info@site.ru), нам подойдут любые почтовые адреса, которые встречаются на странице (@gmail.com, @mail.ru и т.д.).
    Если в HTML-коде сайта там тоже будет такое выделение жирным, то парсер поймет что это две разные части, и из кода:
    Код:
    dgn<b>info@blablacompany.com</b> bla bla bla
    спарсит только нужное. Специально проверил, подставив вручную этот код в HTML случайной страницы. Но «company.com» пришлось заменить на «blablacompany.com», поскольку «@company.com» входит в стандартный «черный список» в регулярке по умолчанию :).
    Скрытая ссылка
     
    1 человеку нравится это.
  15. 20 мар 2018
    #12
    intelligent man
    intelligent man ОргОрганизатор
    @orka13
    Это понятно, парсер сохраняет данные в формате csv (что лучше) или txt?
    Ставим парсинг сайта Скрытая ссылка, он на странице Скрытая ссылка находит почту ivan@company.com и на странице Скрытая ссылка находит почту anton@company.com Что дальше делает парсер и какой будет результат?
     
  16. 21 мар 2018
    #13
    intelligent man
    intelligent man ОргОрганизатор
    @orka13
    Я надеюсь продажа парсера будет при любом количестве участников?
     
  17. 21 мар 2018
    #14
    orka13
    orka13 ЧКЧлен клуба (А)
    Да, конечно. здесь же все равно не страшно, что продам одному, а раздаст массе, ведь шаблон закрытый и идет привязка только к одной лицензии ZennoPoster/ZennoBox. Забыл указать это в теме, хотя кто покупает шаблоны зенки, то знают что почти всегда они закрытого типа и с привязкой продаются.
    Я собирался через ~3…6 недель начинать сбор.
     
    2 пользователям это понравилось.
  18. 13 апр 2018
    #15
    muffin1
    muffin1 МодерМодератор Команда форума
    Очень жду парсер :)
     
  19. 13 апр 2018
    #16
    orka13
    orka13 ЧКЧлен клуба (А)
    давайте хоть до 10 человек добьем пусть будет сбор.
     
  20. 14 апр 2018
    #17
    muffin1
    muffin1 МодерМодератор Команда форума
    забыл уточнить, что парсер URL жду)) на него же тоже будет складчина, как было обещано?
     
  21. 15 апр 2018
    #18
    intelligent man
    intelligent man ОргОрганизатор
    Что за парсер вы имеете ввиду?
     
  22. 16 апр 2018
    #19
    Кроули
    Кроули ДолжникДолжник
    @orka13 Хм... а если я по форуму... мейлы участников зареганых спарсит? ;)
     
    1 человеку нравится это.
  23. 16 апр 2018
    #20
    Лутесса01
    Лутесса01 ДолжникДолжник
    Присоединяюсь к вопросу! Причем интересен парсинг таких форумов, где email в профиле пользователя не отображаются
     
Статус обсуждения:
Комментирование ограничено.