Парсинг email адресов с использованием базы данных

denchik

Client
Регистрация
26.05.2017
Сообщения
50
Благодарностей
100
Баллы
33
Емаил маркетинг - одно из очень популярных и перспективных направлений. Хочу поделиться своими наработками по этой теме. Это не кнопка бабло, но это поможет вам подстроить шаблон под свою задумку или взять некоторые технические реализации.

В целом спарсить почту с сайта не очень сложно, но не всегда email на главной странице и не скрыт. Поэтому шаблон работает по такому алгоритму:

1. Парсит title. Если он пустой, то нет смысла дальше тратить время на этот сайт. Добавляем домен в BL (black list).

2. Пытаемся найти почту на главной странице. Если нашли - сохраняем и переходим к следующему домену.

3. Если на главной не нашли, ищем все ссылки, похожие на страницу с контактами. Пробуем спарсить емаил на этой странице. В первую очередь пытаемся найти почту на расположенную на собственном домене (если парсим site.ru, то пытаемся сначала найти почту вида, например, [email protected]).

4. Если не получилось, сохраняем ссылку на эту страницу. Это пригодится, если нужно максимально проработать базу. В дальнейшем можно написать шаблон, который будет заходить на эти страницы и отправлять письмо через форму обратной связи. Также пытаемся найти ссылку, которая в коде не полным адресом записана, а частично, например "/contact".

5. Сохраняем результат в базу данных. Мне кажется, что с базой данных сложнее настроить шаблон, особенно новичку, но в дальнейшем работа происходит значительно быстрее, все хранится в одном месте, легко и быстро вытаскивать данные, а также это отличный каркас для дальнейшем работы в промышленных масштабах, когда один шаблон парсит домены и заносит в базу, другой берет из базы и парсит емаил. Третий - рассылает письма и т. д.

Вот так выглядит шаблон:

Вид шаблона.png


Для работы нескольких шаблонов удобно использовать столбец "Статус". Например, сборщик доменов добавил домен в базу и присвоил статус 0. Парсер адресов, спарсил емаил, добавил их в базу и поставил статус 1. Рассыльщик взял почту, отправил и присвоил статус 2 и т. д.

Рекомендую для работы с базой данных использовать программу Navicat.

P. S. Для начинающих и тех, кто не хочет работать с базой данных не составит труда заменить кубики базы данных, на работу с Excel таблицами или списками.
 
Тема статьи
Парсинг
Номер конкурса статей
Девятый конкурс статей

Вложения

Для запуска проектов требуется программа ZennoPoster или ZennoDroid.
Это основное приложение, предназначенное для выполнения автоматизированных шаблонов действий (ботов).
Подробнее...

Для того чтобы запустить шаблон, откройте нужную программу. Нажмите кнопку «Добавить», и выберите файл проекта, который хотите запустить.
Подробнее о том, где и как выполняется проект.

Последнее редактирование:

radv

Client
Регистрация
11.05.2015
Сообщения
3 788
Благодарностей
1 952
Баллы
113

VladZen

Administrator
Команда форума
Регистрация
05.11.2014
Сообщения
22 453
Благодарностей
5 913
Баллы
113
Стоит добавить пару скринов для более интересной подачи статьи...
 

denchik

Client
Регистрация
26.05.2017
Сообщения
50
Благодарностей
100
Баллы
33
в чем отличие от этой статьи http://zennolab.com/discussion/threads/parsing-pocht-s-sajtov.46566/ из конкурса шаблонов?
Шаблон на кубиках и лишь несколько элементов на C#, работает с базой данных, собирает ссылку на контактную форму, можно использовать как каркас для комплекса, начиная от сбора домена и заканчивая рассылкой. Цель показать варианты исполнения, подтолкнуть на генерацию новых идей. Да тема частично повторяется, но по себе знаю, что когда только начинал знакомится с программой, то один вариант был по душе, а другой трудно давался для понимания. Также на конкурсных статьях находил для себя идеи на основании опыта и реализаций других пользователей.
 

denchik

Client
Регистрация
26.05.2017
Сообщения
50
Благодарностей
100
Баллы
33

kosstyan

Client
Регистрация
26.12.2015
Сообщения
3
Благодарностей
1
Баллы
3
Здравствуйте. Спасибо за Ваш труд но шаблон не работает. В файле создания базы данных указан такой код:

-- ----------------------------
-- Table structure for main
-- ----------------------------
DROP TABLE IF EXISTS `main`;
CREATE TABLE `main` (
`status` varchar(255) DEFAULT NULL,
`email` varchar(255) DEFAULT NULL,
`site` varchar(255) DEFAULT NULL,
`id` int(255) NOT NULL AUTO_INCREMENT,
PRIMARY KEY (`id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8;

при этом в самом шаблоне, к примеру в блоке "Добавляем в БД найденный емаил" прописан такой запрос:

INSERT INTO main (`status`, `email`, `url`, `title`, `url_contact`) VALUES (1, '{-Variable.email-}', '{-Variable.url-}', '{-Variable.title-}', '{-Variable.url_contact-}');

Как видно тут как минимум не совпадение полей.
Так же когда шаблон ищет почту с совпадением адреса сайта никак не убирается с домена https:// www и тп. То есть если в списке сайтов есть эти символы почта найдена не будет.
 
  • Спасибо
Реакции: ezodoc

kosstyan

Client
Регистрация
26.12.2015
Сообщения
3
Благодарностей
1
Баллы
3
Так же на попадает найденная почта если она не принадлежит домену сайта. Пытаюсь понять почему, сам новичок в зенке и сложно пока разобраться.
 

kosstyan

Client
Регистрация
26.12.2015
Сообщения
3
Благодарностей
1
Баллы
3
Еще мы в блоке "Пробуем найти ссылку на страницу контактов без указания домена (вида a href = "/contacty")" находим страницу контактов после чего сразу идем на выходной блок вместо того, чтобы поискать на найденной странице почту.
Вы сами шаблон проверяли? У Вас он работал?

ЗЫ: Вопросы решил сам, спасибо за пример. Если кому нужно будет могу выложить доработанный шаблон.
 
Последнее редактирование:

bogdat

Client
Регистрация
27.12.2013
Сообщения
2
Благодарностей
0
Баллы
1
ЗЫ: Вопросы решил сам, спасибо за пример. Если кому нужно будет могу выложить доработанный шаблон.
просьба если не трудно поделиться доработанным шаблоном , только учусь ,заранее спасибо.
 

smartwisard

Client
Регистрация
17.01.2017
Сообщения
824
Благодарностей
83
Баллы
28
Я тоже только учусь и есть вопрос!
Как потом рассылку делать будешь, ведь прокси дорого стоят!
Меня сейчас стоимость проксей ipv4 заставляет бросить купленный рассыльщик.
Как новичёк, кроме мобильных проксей решение найти не смог.
 

ezodoc

Client
Регистрация
01.11.2018
Сообщения
22
Благодарностей
1
Баллы
3

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