Помогите переделать скрипт под парсер email
Помогите переделать скрипт под парсер email
В папке My Scripts есть скрипт parser_google.php для разбора поисковой выдачи Google. Хочу переделать его на сбор email адресов с сайтов. Как это сделать?
Re: Помогите переделать скрипт под парсер email
Уже есть такой готовый - Скрипт Human Emulator сборщик email адресов.
Внизу страницы есть ссылка на скачивание. Качаете, распаковываете в папку My Scripts и запускаете. Возможно что то придётся поправить в скрипте, что бы он стал рабочий так как скрипт довольно старый.
Внизу страницы есть ссылка на скачивание. Качаете, распаковываете в папку My Scripts и запускаете. Возможно что то придётся поправить в скрипте, что бы он стал рабочий так как скрипт довольно старый.
Re: Помогите переделать скрипт под парсер email
Скачал, распаковал, запустил и в итоге скрипт не работает.
В окне отладки пишет
В окне отладки пишет
[ 27.03.18 16:41:16] скрипт запустили обработали все страницы 1 обработали все страницы 1 обработали все страницы 1 обработали все страницы 1 [ 27.03.18 16:41:36] скрипт закончил работувбивает в поле поиск текст запросов и ничего больше не происходит.
Re: Помогите переделать скрипт под парсер email
Скорее всего не нажимается кнопка Искать.
В скрипте сборщик мыл:
// перейти на гугль $browser->navigate("google.com"); sleep($wt); // задаём слово в поиск $input->set_value_by_name("q",$key); // нажать enter $button->click_by_name("btnG"); sleep($wt);
а надо :
// перейти на гугль $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(1);
http://x-scripts.com/
Код: Выделить всё
<?php
$xhe_host ="127.0.0.1:7010";
require("../Templates/xweb_human_emulator.php");
$browser->navigate("http://x-scripts.com");
$app->quit();?>
Re: Помогите переделать скрипт под парсер email
Заменил. Теперь после ввода текста и нажатия на кнопку Искать скрипт переходит на выдачу, но в окне отладке опять
[ 27.03.18 17:39:55] скрипт запустили обработали все страницы 1 обработали все страницы 1 обработали все страницы 1 обработали все страницы 1 [ 27.03.18 17:40:08] скрипт закончил работу
Re: Помогите переделать скрипт под парсер email
Это говорит о том что не происходит разбор поисковой выдачи.
Открываем скрипт get_mail.php и видим там следующий код для разбора выдачи
а если мы откроем скрипт parser_google.php, о котором вы писали в самом начале то там разбор выдачи:
Открываем скрипт get_mail.php и видим там следующий код для разбора выдачи
// получим все ссылки на сайты заключённые в тэгах <cite> $sites=$webpage->get_body_inter_prefix_all("<cite>","</cite>"); $sites=explode("<br>",$sites);
а если мы откроем скрипт parser_google.php, о котором вы писали в самом начале то там разбор выдачи:
// получим все ссылки на сайты заключённые в тэгах <cite> $sites=$webpage->get_body_inter_prefix_all("<cite ","cite>"); $sites=explode("<br>",$sites);Соответственно заменяем один код другим.
http://x-scripts.com/
Код: Выделить всё
<?php
$xhe_host ="127.0.0.1:7010";
require("../Templates/xweb_human_emulator.php");
$browser->navigate("http://x-scripts.com");
$app->quit();?>
Re: Помогите переделать скрипт под парсер email
Пришлось ещё подправить ещё вот этот код
и только после этого скрипт начал собирать email-ы. Отработал 13 минут и собрал всего 38 мыл. Как то не густо.
// переходим на сайт $site=str_replace("<b>","",trim($sites[$i])); $site=str_replace("</b>","",$site); $site=get_string($site, ">","</"); if($site=="") continue;
и только после этого скрипт начал собирать email-ы. Отработал 13 минут и собрал всего 38 мыл. Как то не густо.
Re: Помогите переделать скрипт под парсер email
Попробуйте отключить все настройки браузера, кроме js, что бы могли грузиться страницы со скриптами. Картинки и всё остальное вам не нужно. Должно будет работать быстрее. Основное время тут уходит на загрузку страниц.
http://x-scripts.com/
Код: Выделить всё
<?php
$xhe_host ="127.0.0.1:7010";
require("../Templates/xweb_human_emulator.php");
$browser->navigate("http://x-scripts.com");
$app->quit();?>
Re: Помогите переделать скрипт под парсер email
Да это помогло, стало побыстрее работать вроде. По крайней мере страницы мелькают быстрее в браузере. Но вот заметил, что не все email-ы собирает скрипт. Есть страницы, на которые скрипт заходит и там есть мыло, но в файле с результатами я этого адреса не нахожу.Попробуйте отключить все настройки браузера, кроме js, что бы могли грузиться страницы со скриптами. Картинки и всё остальное вам не нужно. Должно будет работать быстрее. Основное время тут уходит на загрузку страниц.
Re: Помогите переделать скрипт под парсер email
Непосредственно за сбор адресов эл. почты отвечает регулярное выражение
вот например https://ru.stackoverflow.com/questions/ ... 0%B8-email
// ищем все email на странице preg_match_all('#[\w\d.-_]+@([\w\d.-_]+\.)+[a-zA-Z]{2,6}#i', $webpage->get_source(), $matches);после чего мы удаляем лишнее из полученных строк и записываем это в файл:
// пройдёмся по полученным результатам foreach ($matches[0] as $key=>$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)."\r\n",60) ; }Поэтому если что то не попадает оно может не соответствовать регулярному выражение. Попробуйте поиграться с ним в интернете можно найти много пр имеров по запросу "php регулярные выражения email".
вот например https://ru.stackoverflow.com/questions/ ... 0%B8-email
http://x-scripts.com/
Код: Выделить всё
<?php
$xhe_host ="127.0.0.1:7010";
require("../Templates/xweb_human_emulator.php");
$browser->navigate("http://x-scripts.com");
$app->quit();?>
Re: Помогите переделать скрипт под парсер email
переделал так :
Вроде стало работать лучше, но заметил что скрипт не ходит по страницам выдачи, а обрабатывает только одну. Хотя в настройках скрипта стоит:
// ищем все email на странице preg_match_all('/[-0-9a-z_]+@[-0-9a-z_]+\.[a-z]{2,6}/i', $webpage->get_source(), $matches);
Вроде стало работать лучше, но заметил что скрипт не ходит по страницам выдачи, а обрабатывает только одну. Хотя в настройках скрипта стоит:
// глубина прохода в поисковые результаты $cnt_pages = 10; // текущая страница $crnt_page =1;
Re: Помогите переделать скрипт под парсер email
За хождение по страницам отвечает код:
То есть для перехода на следующую страницу используется код
При этом если кликать через контекстное меню и выбрать эту функцию для ссылки с текстом 2 получим:
// не перешли на следующую страницу if(!next_page($crnt_page)) break;Сама функция находится в файле functions.php
// следующая страница function next_page(&$crnt_page) { global $anchor, $browser, $app,$cnt_pages; // количество поисковых страниц $crnt_page=$crnt_page+1; if($cnt_pages!=-1) { // останавливаем скрипт if($crnt_page>$cnt_pages) { debug_mess("обработали все заданные страницы ".($crnt_page-1)); return false; } } // перейдём на следующую страницу с результатами if(!$anchor->click_by_inner_text($crnt_page,true)) { debug_mess("обработали все страницы ".($crnt_page-1)); return false; } debug_mess("обработали страницу ".($crnt_page-1)); return true; }
То есть для перехода на следующую страницу используется код
// перейдём на следующую страницу с результатами if(!$anchor->click_by_inner_text($crnt_page,true))
При этом если кликать через контекстное меню и выбрать эту функцию для ссылки с текстом 2 получим:
$anchor->click_by_inner_text(" 2",false );ТО есть в тексте ссылки присутствует перенос строки перед номером. Переделаем нашу функцию таким вот образом:
// перейдём на следующую страницу с результатами if(!$anchor->click_by_inner_text(" $crnt_page",false)) { debug_mess("обработали все страницы ".($crnt_page-1)); return false; }
http://x-scripts.com/
Код: Выделить всё
<?php
$xhe_host ="127.0.0.1:7010";
require("../Templates/xweb_human_emulator.php");
$browser->navigate("http://x-scripts.com");
$app->quit();?>
Re: Помогите переделать скрипт под парсер email
Работает! Только вот всё равно как то медленно...
Re: Помогите переделать скрипт под парсер email
Надо всё таки делать поправку на то, что вы работаете в бесплатной версии. В последней версии сам браузер работает намного быстрее и можно работать во многопотоке. Если же вам не нужно загрузки JS при сборе, то можно использовать функцию load_web_page. Она грузит страницу напрямую без браузера. Ну или вообще использовать CURL, но его можно использовать и без Хумана. НО с Хуманом намного удобнее , так как вам доступен весь функционал по обработке собранных данных. В общем, как видите выбор инструментов и возможных путей реализации в этом вопросе большой, а дальше всё зависит от того как хорошо вы знакомы с программированием.
http://x-scripts.com/
Код: Выделить всё
<?php
$xhe_host ="127.0.0.1:7010";
require("../Templates/xweb_human_emulator.php");
$browser->navigate("http://x-scripts.com");
$app->quit();?>
Re: Помогите переделать скрипт под парсер email
Честно сказать я c PHP только вот начинаю знакомиться с помощью Хуманаxscripts писал(а): ↑28 мар 2018, 20:33Надо всё таки делать поправку на то, что вы работаете в бесплатной версии. В последней версии сам браузер работает намного быстрее и можно работать во многопотоке. Если же вам не нужно загрузки JS при сборе, то можно использовать функцию load_web_page. Она грузит страницу напрямую без браузера. Ну или вообще использовать CURL, но его можно использовать и без Хумана. НО с Хуманом намного удобнее , так как вам доступен весь функционал по обработке собранных данных. В общем, как видите выбор инструментов и возможных путей реализации в этом вопросе большой, а дальше всё зависит от того как хорошо вы знакомы с программированием.
Возможности программы конечно впечатляют, понимаю что если полностью разобраться, то можно всё что угодно делать с её помощью. Вот только осталось разобраться