Как собирать почтовые адреса с помощью Python

Привет всем!

Буквально пару дней назад, в очередной раз разгребая папку входящих я задумался — а так ли уж эффективен этот самый спам? Не ожидая какого-то очевидного ответа поделился мыслью на своей странице в Facebook и получил комментарии, которые подтвердили: спам жил, жив, и будет жить!

А раз так — то давайте задумаемся: как собирать почтовые адреса с помощью Python? Понятное дело, я не агитирую всех резко начать спамить (мы все законопослушные граждане), но разобраться с проблемой — это решить ее на 90%. Так давайте разбираться вместе.

Сразу скажу, что никто не отметает использование программ в стиле EMEX3 — ручного монстра юных (и не очень) спамеров — с многолетней репутацией, массой возможностей (обход капчи, списки сканируемых ресурсов, использование поисковых запросов, определение регионов сканирования, предварительная фильтрация) и все такое прочее.
emex3

Однако — она платная, и кроме того — вернемся к вопросу, озвученному выше: разобраться с проблемой, коих в настоящий момент целых две:
1. Сбор почтовых адресов
2. Рассылка почты

Проблема номер два имеет целый список подпроблем — от банального понимания того, что спам сейчас во многих странах относится к очень незаконному деянию, до сложности реализации рассылок без некоторых финансовых вложений на одноразовые сервера, написание собственного ПО или настройки коммерческого, поиск алгоритмов пробивания фильтров (которые начинают считать вашу рассылку спамом с чистого до этого момента сервера после двадцатого письма (а значит, вам нужно динамически менять текст)). Вообщем — все совсем не просто, и потому нужно либо входить в эту тему плотно, либо просто не начинать 🙂

Однако первая проблема — интересна и совсем не противоречит закону. Никто не запрещает вам пользоваться, например, каталогами предприятий, ведь правда? И уж совсем не запрещено сохранить каким-нибудь Teleport-ом весь этот самый каталог предприятий к себе в компьютер, что бы вы, в случае отсутствия Интернета могли найти нужный вам адрес.

А теперь нам остается только перебрать файлы, ибо Teleport сохраняет сайт со всеми данными (включая адреса электронной почты).

Логика перебора будет простой:
1. Определяем рабочую папку, где сложены исходные файлы
2. Открываем файл, с помощью регулярного выражения (спасибо Денис, за твою лекцию по этому вопросу, которую ты провел лично мне по Skype поздно ночью! Я не стал специалистом в этом вопросе, но хоть какую-то базу знаний приобрел 🙂 ) находим адреса электронной почты
3. Сохраняем полученные результаты в файл
4. Идем дальше

Черновой код программы доступен тут. Сейчас ночь, а учитывая, что бОльшую часть вечера я провел на родительском собрании в школе + дела домашние — окультуривать код откровенно лениво. Важно, что уже в таком безобразном виде он работает 🙂

Пояснения по коду — совсем скоро, следите за новостями 🙂 Ну и окультуренный код, в который я обязательно добавлю такие украшалки, как:
— подсчет общего количества файлов
— статистику — сколько файлов обработано, сколько осталось
— возможность выбора — удалять обработанные файлы, или нет
— фильтрация полученного списка файлов от дублирования и мусора
— и т.д.

Кстати, не так давно я размышлял на тему использования в почтовых рассылках тегов — кому интересно — добро пожаловать сюда 🙂

Есть вопросы? Задавайте их на почту. И не забывайте сделать репост статьи на свою страницу в социальной сети!