17.11.2015 12:41
aldemko
 
Всем привет, давно меня здесь не было.
Болел да и работа.
И так не давно, ну уже не очень не давно, я начал по немногу изучать Linux
Честно говоря я еще не пересел на пингвина, и не знаю буду ли, но очень много работы делаю под ним
Но сейчас речь не о том.
Многие (я так думаю) люди, часто (а может и нет) ставили себе в виде задачи, спарсить (собрать) все e-mail адреса с какого-то сайта (для каких целей уже не важно)
В первую очередь они начинают искать как это сделать:
1 вариант: вручную собирать (я для себя это вычеркнуг - лишний геморой ничем себя не оправдывающий)
2 вариант - воспользоваться гуглом(яндексом)
обычно (99.9%) пользователь (соискатель) получает примерно такие результаты:
написать скрипт на php
гаписать скрипт еще на чем то
купить супер пупер прогу
скачать зануленую (взломанную) - с вероятностью заразить комп
и еще миллион и один подобный вариант

а теперь вариант номер 3.
Совершенно бесплатный, не требует абсолютно никаких знаний, оплаты, или возможности заразить ПК
(до не давнего времени я думал что самая обычная команда идущая в комплекте с любым линуксом WGET только скачивает пакеты, программы и прочее, но нет :)))))
и так самый простой, бесплатный и безопасный способ спарсить e-mail адреса с чужого сайта воспользоваться той же командой WGET
и так: открываем консоль в Linux и вводим
Код:
wget -q -O - http://region125.ru/content.php?r={1..500} | grep -ioE '\b[A-Z0-9._%+-]+@[A-Z0-9.-]+\.[A-Z]{2,4}\b' | sort -ui >> ./email.txt
с этого сайта я себе парсил почтовики
пояснения
region125.ru/content.php?r - ссылка отвечающая за листвку страниц (к примеру region125.ru/content.php?r=1 отобразит 1 страницу, с перечнем организаций - в моем случае)
{1..500} - с какой по какую страницу парсить (я не знал точное кол-во страниц поэтому ввел побольше)
email.txt - куда все потом красиво записать
Примечание - после ввода данной команды, вам может казаться что курсор перевелся на следующую строку, и ничего не происходит - вам нужно просто подождать, для убедительности того что скрипт работает введите к примеру {1..2} а не {1..500}
Примечение2: {1..500} - это в моем случае, в вашем случае страницы выводящую инфу могут начинаться с 999 или еще чего то

Может пригодиться кому.
Кто знает способ проще отпишитесь )
17.11.2015 14:02
OlegON
 
Небольшие предложения
1. Использовать curl и обязательно с параметром -A, т.е. с указанием какого-то распространенного юзерагента, например, FF. В противном случае можно получить фигу, а не страницу.
2. URL заключать в двойные кавычки, чтобы не получилось приколов со спецсимволами в нем.
3. Немного усложнить скрипт таким образом, чтобы вставить задержку между обращениями к странице. На хорошем канале, с большим количеством страниц можно налететь на бан, если хостер не баклан.
Часовой пояс GMT +3, время: 05:09.

Форум на базе vBulletin®
Copyright © Jelsoft Enterprises Ltd.
В случае заимствования информации гипертекстовая индексируемая ссылка на Форум обязательна.