php скрипт: index.php PHP: <?php $proxylist=array(); include "Snoopy.class.php"; $delay=10; function parse_email($email,$proxy='',$port=80){ $s=new Snoopy(); $link="http://www.site.ru/domains?type=created&email=$email"; $nnn= mt_rand(12, 17); $s->agent="Mozilla/5.0 (X11; Linux x86_64; rv:$nnn.0) Gecko/20130514 Firefox/$nnn.0"; if(!empty($proxy)){ $s->proxy_host=$proxy; $s->proxy_port=$port; }; $s->fetch($link); $r=$s->results; //sleep(1);//Задержка в секунду чтобы не забанили, по моему и без этого работает if(!strpos($r,'<div id="filter"'))return -1; $match=array(); preg_match_all("/<td class=\"domain\" data-value=\"(.*?)\"/", $r, $match); $match=$match[1]; if(empty($match))return false; return $match; } function get_full($email,&$parse){ $size=sizeof($parse); $res=$email." [".$size."] "; for($i=0;$i<$size;$i++){ $res.=$parse[$i]." "; }; $res=trim($res); return $res; }; function parse_file($file,$dir,$proxy='',$port=80,$pos=0){ global $delay; echo "Start parsing!\r\n"; $noc=false; $usedproxy=false; if(!file_exists($dir))mkdir($dir); $data= trim(file_get_contents($file)); $data= str_replace("\r", "", $data); $data=explode("\n",$data); $bads=$mails=$full=''; $per=0; if($pos>0)$pos--; $pos=round(sizeof($data)*$pos/100); for($i=$pos;$i<sizeof($data);$i++){ $lastper=$per; $per=round(100*($i+1)/sizeof($data)); if($per!=$lastper){$noc=true;$delay=10;echo "$per % \r\n";}; $email=trim($data[$i]); $emailp=explode(';',$email); $emailp=$emailp[0]; $parse=-1; if(!$usedproxy)$parse= parse_email($emailp); if($parse==-1){ if(!isset($time1))$time1=time(); if(!empty($proxy)){ $usedproxy=true; $parse= parse_email($email, $proxy, $port); if($parse==-1){echo "Captcha found on proxy!Email:$email. Sleep $delay minutes!\r\n";if(!$noc)$delay=$delay*2;$noc=false;$usedproxy=false; sleep($delay*60);$i--;continue;} }else{ if(!$noc)$delay=$delay*2;$noc=false; //В общем он сдох стабильно на 34% и говорил что капча виновата, а на 37 ожил до 85% и там сново повис, это мыло какое то может быть, на 1 месте 2 раза не дохнут echo "Captcha found!Email:$email . Sleep $delay minutes!\r\n"; sleep($delay*1); $i--; //Эта строчка требует обязательного парсинга какого то мыла, пока не пропарсит-дальше не идёт continue; }; } if(!$parse){ $bads.="\r\n".$email; $bads=trim($bads); }else{ $mails.= "\r\n".$email; $mails=trim($mails); $full.=get_full($email, $parse)."\r\n"; } file_put_contents("$dir/bads.txt", $bads); file_put_contents("$dir/emails.txt", $mails); file_put_contents("$dir/full.txt", $full); } echo "All done!\r\n"; }; function updateProxy($url,$new=false){ global $proxylist; $s=new Snoopy(); $s->fetch($url); $r=nl2br($s->results); $match=array(); preg_match_all("/\d+\.\d+\.\d+\.\d+:\d+/", $r,$match); $data=$match=$match[0]; //$data= str_replace("\r", "", $data); $size=sizeof($data); for($i=0;$i<$size;$i++){ if(!in_array($data[$i],$proxylist))$proxylist[]=$data[$i]; } } function checkProxy($ip){ $ip=explode(":",$ip); $port=$ip[1]; $ip=$ip[0]; $name= gethostbyaddr($ip); $s=new Snoopy(); $s->fetch("http://2ip.ru"); $r=$s->results; $match=array(); preg_match("/<big id=\"d_clip_button\">(.*?)<\/big>/", $r,$match); if(empty($match))return false; $myip=$match[1]; $s->proxy_host=$ip; $s->proxy_port=$port; $s->fetch("http://2ip.ru"); $r=$s->results; $match=array(); preg_match("/<big id=\"d_clip_button\">(.*?)<\/big>/", $r,$match); if(empty($match))return false; $ip2=$match[1]; if($ip2==$myip)return false; return true; $match=array(); } function nextProxy($ip=''){ global $proxylist; $ind=0; if($ip!='')$ind= array_search($ip, $proxylist); $size=sizeof($proxylist); $per=0; for($i=$ind+1;$i<$size;$i++){ $lastper=$per; $per=round(100*($i+1)/sizeof($proxylist)); if($per!=$lastper){ echo "$per % \r\n"; }; $ip=$proxylist[$i]; $r=checkProxy($ip); if($r)return $ip; } return false; } if(!empty($argv)){ $file=$argv[1]; $dir=$argv[2]; $proxy=$port=''; if(isset($argv[3])){ $proxy=$argv[3]; // если ошибка -пробуем через прокси в 2 раза быстрее по идее $proxy=explode(":",$proxy); $port=$proxy[1]; $proxy=$proxy[0];} parse_file($file, $dir,$proxy,$port); }; ?> Нужно чтоб работал по списку url из файла, например proxy.txt 2й файл скрипта Snoopy.class.php _http://rghost.ru/47605486
тебе надо чтобы с каждого прокси заходил? содержимое файла прокси.ткст 12238232:80 3342343:80 и тд да?
держи Code: помещаем всю в функцию function a($proxy) { кодец $base = file(siskiproxy.txt'); foreach ($base as $proxy) { echo a(trim($proxy)); }
вот.... дали код готовый и не мождет вообщем он с**ил у когото скрипт и просит на халяву сделать лето
понятия не имею, что у тебя не так, у меня глаза вываливаются сразу как смотрю на него. меня на работе закумарили этим вашим пхп и вэбом. тошно уже на него смотреть.
Половину когда можно выпилить за ненадобностью. Не соблюдены отступы что заставляет кровоточить глаза. Многие моменты можно сократить не разжёвывая их на 3 строки.
Это обычный парсер и не у кого нечего я не пиз**л мне всего лишь было нужно привязать прокси по списку. В php, я "Ноль"
всё равно я не понял куда и как правильно его впихнуть /по возможности просто отредактируйте скрипт пожалуйста.
Я этот отстойняк написал пол года назад чтобы продемонстрировать работу парсера когда мне не нужны были не отступы, не понятность, не документация. Хватит писать что код говно, на хеппи хак если даже и есть документация на 1 софтинку, то она не работает 85%. Чак, я написал вполне рабочий софт на горячую руку, потом мы спиздили с Растой приват прокси и была мысль туда их подключить. Обычно на меня нет претензии когда просят документированный код, поэтому хватит писать что софт сырой.
Ins3t Да софт написан очень мокро, там ещё половина функций не используется. Я хотел туда прокси граббер встроить параллельно, только потом забил уже.
FunOfGun Писал и буду писать без отступов, гонял камень а буду гнать ещё и Whisky. Особенно когда нужно чтобы скрипт всего навсего работал а не чтобы его кто то дорабатывал Дам совет, бухать плохо. Веди здоровый образ жизни и слушай Мишу Маваши