Другие наши проекты на эту тему!
Программа Сборщик email адресов. Это наш первый программный продукт написанный с использованием C# Human Emulator API.
Скрипт сбора базы email адресов. Этот скрипт, поможет собрать вам ваши собственные базы почтовых адресов.
Скрипт работает следующим образом: берём поисковые фразы из файла и вводим их в поле поиска google. Затем разбираем поисковые результаты Google на ссылки. Далее идём по полученным ссылкам, заходим на каждый сайт, переходим на страницу «Контакты» или «О нас» и, используя регулярное выражение php, собираем все почтовые адреса на странице. Затем пишем то что собрали в файл с удалением дубликатов. Вот и готова наша база с целевыми email адресами.
На входе скрипт принимает файл с поисковыми фразами в формате:
мебель украина контакты
мебель киев контакты
мебель донецк контакты
мебель харьков контакты
На выходе имеем файл с результатами в формате:
decor2004@inbox.ru
info@liganova.kiev.ua
evgenzap@ukr.net
vlabi@optima.com.ua
tasi@io.zp.ua
Настройки скрипта:
1 2 3 4 5 6 7 |
// файл с данными для скрипта $keys = file("data/keys.txt"); // файл с результатами $file_res="res/email.txt"; // глубина прохода в поисковые результаты $cnt_pages = 10; |
Для работы скрипта лучше отключить всё лишнее за исключением java script.
Для написания этого скрипта использовался скрипт заготовка Парсер Гугль. Используя аналогичный скрипт-заготовку Парсер Яндекса можно легко написать такой же скрипт сбора почты для Яндекса.
Сам скрипт выглядит следующим образом:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 |
<?php $xhe_host ="127.0.0.1:7010"; // The following code is required to properly run XWeb Human Emulator require("../../Templates/xweb_human_emulator.php"); // //////////////////////// настройки скрипта ///////////////////////// // файл с данными для скрипта $keys = file("data/keys.txt"); // файл с результатами $file_res="res/email.txt"; // глубина прохода в поисковые результаты $cnt_pages = 10; // текущая страница $crnt_page =1; // скрипт работает в режим отладки $dbg = true; // //////////////////////// дополнительные модули /////////////// // функции require_once("functions.php"); // /////////////////////// скрипт /////////////////////////////////////////// debug_mess(date("\[ d.m.y H:i:s\] ")." скрипт запустили"); // кол-во for($ii=0;$ii<count($keys);$ii++) { // получить запрос $key = trim($keys[$ii]); // перейти на гугль $browser->navigate("google.com"); // задаём слово в поиск $input->set_value_by_name("q",$key); $input->click_by_name("q"); // нажмём пробел для отключения всплывшей подсказки $keyboard->send_key(32,true); // нажать enter $keyboard->send_key(13,true); // ждём sleep(3); // обнулим перед следующим проходом $crnt_page=1; while(true) { // получим все ссылки на сайты заключённые в тэгах <cite> $sites=$webpage->get_body_inter_prefix_all("<cite>","</cite>"); $sites=explode("<br>",$sites); // пройдёмся по всем полученным ссылкам for($i=0;$i<count($sites);$i++) { // переходим на сайт $site=str_replace("<b>","",trim($sites[$i])); $site=str_replace("</b>","",$site); if($site=="") continue; // вывод в панель отладки //debug_mess("ссылка на сайт : ".$site); // открыть и сделать активным новый браузер $browser->set_count(2); $browser->set_active_browser(1,true); // переходим на сайт $browser->navigate($site); sleep(1); // перейти на контакты $anchor->click_by_inner_text("контакты"); $anchor->click_by_inner_text("Контакты"); $anchor->click_by_inner_text("О нас"); $anchor->click_by_inner_text("о нас"); sleep(2); // ищем все email на странице preg_match_all('#[\w\d.-_]+@([\w\d.-_]+\.)+[a-zA-Z]{2,6}#i', $webpage->get_source(), $matches); // пройдёмся по полученным результатам foreach ($matches[0] as $key=>$value) { //debug_mess("мыло: ".$value); // уберём лишнее $str_mail=str_replace(">","",$value); $str_mail=str_replace("<","",$str_mail); $str_mail=str_replace("mailto:","",$str_mail); $str_mail=str_replace("/","",$str_mail); $str_mail=str_replace("mail:","",$str_mail); // запишем в файл $textfile->add_string_to_file($file_res,trim($str_mail)."\n",60) ; } // закрываем и переходим обратно $browser->set_active_browser(0,true); $browser->close_all_tabs(); // убрать дубликаты из файла dedupe($file_res); } // не перешли на следующую страницу if(!next_page($crnt_page)) break; } } debug_mess(date("\[ d.m.y H:i:s\] ")." скрипт закончил работу<br>"); // Quit $app->quit(); ?> |
Скрипт написан 2.10.2012 в Human Emulator 4.4.19 Advanced.
На момент публикации статьи 3.10.2012 скрипт был рабочий.
Обсуждение этого скрипта на форуме. В процессе обсуждения скрипт приводится в рабочее состояние.