5/5, 1 голос
Доступно

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

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

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

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

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

Статус темы:
Закрыта.
    1. orka13

      orka13 orka13 ПартнерПартнер (А)

      [​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]

      [​IMG]

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



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


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

      1. vadoil

        vadoil участвует в складчине.

        9 дек 2018 в 11:20
      2. vadoil

        vadoil не участвует в складчине.

        9 дек 2018 в 11:20
      3. vadoil

        vadoil участвует в складчине.

        9 дек 2018 в 11:20
      4. Alnikom

        Alnikom участвует в складчине.

        8 ноя 2018

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

      1. skladchik.com

        Осталось 5 дней до завершения складчины.

        28 май 2018
      2. skladchik.com

        Складчина доступна.

        28 май 2018
      3. skladchik.com

        Складчина активна.

        26 май 2018
      4. skladchik.com

        Сбор взносов начинается 26.05.2018.

        24 май 2018
    3. Basill

      Basill Basill ОргОрганизатор (А)

      А выборку можно ставить? или критерии поиска
       
    4. orka13

      orka13 orka13 ПартнерПартнер (А)

      Не совсем понял вопроса…
      Имеется ввиду может шаб ли по ключевым словам искать сайты в сети через Поисковые Системы, а уже потом парсить с них мейлы?
      - Нет, не умеет. Шаблону надо подсунуть уже готовый список с ссылками доноров.

      Есть у меня мощный парсер выдачи Bing под эту задачу, но еще не дошли руки выставить здесь. Он бы помог в такой ситуации.
       
    5. Sagittarius

      Sagittarius Sagittarius ОргОрганизатор

      Не особо поняла из описания, но, например из Мой Мир сможет парсить?
       
    6. analytic

      analytic analytic ОргОрганизатор (А)

      А если это форум -парсятся емейлы со всех страниц? Или паук работает только по страницам связанными с контактной информацией?
       
    7. analytic

      analytic analytic ОргОрганизатор (А)

      С какими лимитами работаешь? А то в последнее 2 года сложно стало парсить - прокси быстро в бан попадают.
      п.с. Bing просто продвигает платный API
       
    8. orka13

      orka13 orka13 ПартнерПартнер (А)

      Нет, не сможет. под такие задачи лучше поискать узконаправленные парсеры заточенные только под соц-сети. Там обычно нужны свои алгоритмы обхода защиты, то есть надо парсить не просто код страницы (как в моем парсере), а простукивать API сервиса, либо нужна целая цепочка запросов с передачей куки для получение заветного поля с email.
      Парсятся только страницы, ссылки на которые присутствуют в стартовой странице (которая бралась из файла «Urls_UTF-8_!!!.txt»). В старпосте указано это:
      Нет, не только. Просто, например, если вы указали лимит брать максимум 30 внутренних страниц, а на обрабатываемой странице 60 внутренних ссылок, то при составлении списка шаблон пытается сначала добавить в него все ссылки с признаками «контактной страницы», а потом уже добиваем список и другими внутренними ссылками, пока список не наберет 30 строк.
      Я под доры миллионы паршу через прокси, и все ок. Чуть попозже его выставлю, а то сейчас и так много авторских складчин открыл, надо по очереди их провести сначала.
       
      3 пользователям это понравилось.
    9. analytic

      analytic analytic ОргОрганизатор (А)

      Это понятно....тут вопрос в конкретике. Будем ждать парсер bing.
      п.с. Сейчас и парсер Avito есть и рассылщик писем есть на складчике и темы где складчики за 5 часов работы зарабатывают в лучшем случае 200-300 рублей - всегда стоит вопрос в конкретных цифрах. Результат -расходники.
       
    10. intelligent man

      intelligent man intelligent man ЧКЧлен клуба

      Дайте ссылку :)
       
    11. intelligent man

      intelligent man intelligent man ЧКЧлен клуба

      @orka13
      Как я вижу по видео, результат сохраняется в формате csv, что хорошо. Но почему тогда вы нам скинули txt файл, где правда?
      Проблема многих программ, они дают этот файл пустым, типо сам заполни, это плохо. Вы так же делаете или там будет уже какой-то готовый список?
      Еще не ясно, как идет сбор ссылок с одного сайта? Как я понял, парсер собирает почты, потом подставляет их под один домен, если их много и удаляет дубли. Правильно?
      Есть такой парсер Крокодил, я замечал, что он косячно собирает почты. Часто добавляя лишние символы к реальному адресу, то есть неправильно обрабатывает код страницы. Например dgninfo@company.com где правильная часть выделенная жирным, остальное это часть кода, который не относится к почте. Вопрос, ваш парсер не делает такие косяки?
       
    12. orka13

      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» входит в стандартный «черный список» в регулярке по умолчанию :).
      [​IMG]
       
      1 человеку нравится это.
    13. intelligent man

      intelligent man intelligent man ЧКЧлен клуба

      @orka13
      Это понятно, парсер сохраняет данные в формате csv (что лучше) или txt?
      Ставим парсинг сайта company.com, он на странице company.com находит почту ivan@company.com и на странице company.com/about находит почту anton@company.com Что дальше делает парсер и какой будет результат?
       
    14. orka13

      orka13 orka13 ПартнерПартнер (А)

      CSV. Но вы так и не поняли сути наверное... В примере из стартпоста тот же файл csv, просто он по моей невнимательности переименовался мной в txt. Но внутри те же строки, разделенные на 2 столбца "точкой с запятой". Хотя подозреваю, что у вас просто по умолчанию в Windows файлы *.CSV открываются сразу в Excel в виде красивой таблицы, вот вы по неопытности и подумали, что CSV файлы лучше, но на самом деле CSV=TXT. То есть если в TXT-файле строки записаны с разделителями, то смело переименуете его в CSV и он также откроется в Excel :). Кстати, вместо Excel я предпочитаю с крупными CSV\TXT-таблицами работать чере EmEditor. В соседней складчине я давал скрины как в нем текстовку в форме таблицы смотреть, только там у меня разделитель не ";", а "символ таба".
      Первым всегда будет результат с первой старницы, потом результаты с "контактных страниц", потом результаты с остальных внутренних станиц. То есть приблизительно вот так буде в отчете:
      Код:
      https://company.com;ivan@company.com, anton@company.com
      Посмотрите файл с пимером...
       
      1 человеку нравится это.
    15. Мнемоник

      Мнемоник Мнемоник ПартнерПартнер (А)

      1 человеку нравится это.
    16. intelligent man

      intelligent man intelligent man ЧКЧлен клуба

      @orka13
      Я надеюсь продажа парсера будет при любом количестве участников?
       
    17. orka13

      orka13 orka13 ПартнерПартнер (А)

      Да, конечно. здесь же все равно не страшно, что продам одному, а раздаст массе, ведь шаблон закрытый и идет привязка только к одной лицензии ZennoPoster/ZennoBox. Забыл указать это в теме, хотя кто покупает шаблоны зенки, то знают что почти всегда они закрытого типа и с привязкой продаются.
      Я собирался через ~3…6 недель начинать сбор.
       
      2 пользователям это понравилось.
    18. Dires

      Dires Dires ЧКЧлен клуба

    19. zzavv

      zzavv zzavv ЧКЧлен клуба

    20. muffin1

      muffin1 muffin1 ЧКЧлен клуба

      Очень жду парсер :)
       
    21. orka13

      orka13 orka13 ПартнерПартнер (А)

      давайте хоть до 10 человек добьем пусть будет сбор.
       
    1. intelligent man
      5/5,
      Организацией складчины доволен
      Прекраснейший шаблон и особенно его автор orka13! Всё четко работает, удобно пополнять новыми почтами свои базы данных. На складчике, для этой задачи, не видел даже альтернатив. Очень рад такому приобретению, результаты парсинга помогают мне зарабатывать деньги :-)
      2 пользователям это понравилось.
Статус темы:
Закрыта.

Поделиться этой страницей