С удивлением заметил, что e-mail адреса пользователей сервиса «ответы» на mail.ru хранятся в коде страниц в открытом виде, как на заре интернетов прямо. Никаких попыток скрыть адреса — даже странно в наше время. Можно легко и непринуждённо сграбить базу email для дальнейшего брутфорса паролей к ним или например спама (поскольку на сервисе есть категории — вероятно и целевую аудиторию можно прикинуть по ним).
В общем всё делается предельно примитивно, в старом добром шелле, без разных модных многопоточных грабберов из облака (для брутфорса кстати облако наверное очень интересным может быть):
wget -q -O - http://otvet.mail.ru/open/?pg={1..10} | grep -ioE '\b[A-Z0-9._%+-]+@[A-Z0-9.-]+\.[A-Z]{2,4}\b' | sort -ui >> ./otveti_email.txt
Как видно из примера — я сграбил для проверки первые 10 страниц открытых ответов получив в итоге 197 уникальных адресов, сохраненных в файл с email-адресами. В принципе, для скорости и удобства можно каждую категорию в отдельном процессе выкачивать, с сортировкой результатов уже после загрузки, непосредственно из файла.
Напоследок ссылка для тюнинга регулярки под grep по поиску email-адресов.
UDP: Под катом для примера выложил простой скрипт на bash, который парсит некоторые страницы раздела «Компьютеры и интернет» с Ответы@Mail.ru и раскладывает полученные e-mail адреса по категориям. Его несложно дополнить всё теми же штатными средствами оболочки чтобы автоматически обходить дерево разделов и парсить e-mail адреса из всех категорий.
otvet-mail-ru-parser.sh (открыть в новой вкладке)
P.S.:
.-´¯¯¯`-. ,´ `. | \ | \ \ _ \ ,\ _ ,´¯,/¯)\ ( q \ \,´ ,´ ,´¯) `._,) -´,-´) \/ ,´/ ) / / / ,´-´
Проблема на самом деле уже давно известная и присущая не только mail.ru. С тем же успехом можно парсить профили Google, что-то с Яндекса (не помню — то ли Я.ру, то ли мойкруг — где-то было). Да с помощью Whois в конце концов можно миллионы валидных email адресов собрать.
Про whois соглашусь. Гуглопрофиль открывается для поиска и просмотра по желанию самого пользователя, да и почты в открытом виде я там не встретил. В моем круге тоже кстати, на Я.ру не пускает без логина — не проверял.
В случае с mail.ru независимо от желания или нежелания адрес в открытом виде лежит и очень примитивно извлекается, что некрасиво как минимум.
Не пашет! Не собирает…
Даже любопытно узнать — в чем это выражается?
Вот. оно чо, Михалыч… а я думаю — чего мне столько спама приходит… а я когда комп купила, на Ответы мэйловские заходила, даже чего-то там отвечала…
Спасибо за полезную статью.
Да уж, там лучше отдельный адрес завести пожалуй для участия в вопросах-ответах.
строка 16: ошибка синтаксиса около неожиданной лексемы `if’
/home/exebeche/otvety.sh: строка 16: ` if [ ! -d «$PWD/$SECTION» ]’
Затруднительно что-либо сказать, исходя из этой информации.
В
$ bash --version
GNU bash, version 4.2.37(1)-release (x86_64-pc-linux-gnu)
работает нормально.