Тема: Perl , post
Показать сообщение отдельно

  #31  
Старый 23.02.2008, 09:29
bul.666
Banned
Регистрация: 06.06.2006
Сообщений: 944
С нами: 10489346

Репутация: 1403


По умолчанию

Ах ну да еще ты хотел поиск по яндексу =)
Короче я сделал, чтобы выводил количество найденых результатов
Вот полный скрипт:
PHP код:
#!/usr/bin/perl 
use Socket;

$host="www.yandex.ru";
$port="80";

$NEED_STR = "<table id=__STRING__>";

@
parse_need = split("__STRING__",$NEED_STR);

socket(SOCK, PF_INET, SOCK_STREAM, getprotobyname('tcp'));

$iaddr = inet_aton($host);
$paddr = sockaddr_in($port, $iaddr);

connect(SOCK, $paddr);
send (SOCK, "GET / HTTP/1.0\n\n", 0);

@
data=<SOCK>; 
close(SOCK);

$size = @data;
for (
$i=0;$i<$size;$i++) {
$fullitself=@data[$i]; 

@
temp=split(@parse_need[0],$fullitself); 
@
semp=split(@parse_need[1],@temp[1]); 
$id =  @semp[0];
}

if (
$id) {
print 
"\n\n[!] FOUND STRING: '$id'\n\n";
}else {
print 
"\n\n[!] NOT FOUND\n\n";
}

socket(SOCK, PF_INET, SOCK_STREAM, getprotobyname('tcp'));

connect(SOCK, $paddr);
$header = "GET /yandsearch?text=".$id." HTTP/1.0\r\n"
."User-Agent: Opera/10.84 (Windows NT 5.1; U; ru)\r\n"
."Host: www.yandex.ru\r\n"
."Referer: http://yandex.ru/\r\n"
."Proxy-Connection: close\r\n"
."Content-type: application/x-www-form-urlencoded\r\n\r\n";

send (SOCK, $header, 0);

@
data2=<SOCK>;
close(SOCK);

$size = @data2;

for (
$i=0;$i<$size;$i++) {
$fullitself=@data2[$i]; 

$fullitself =~ s/(&.*?;)//egs;
 
if ($fullitself =~m/<b>[0-9]/) {
     
$fullitself =~/\b([0-9]+)/;
    
$result = $1;
  }
}

if (
$result) {
print 
"\n\n[!] YANDEX FOUND '$result' PAGES WITH '$id'\n\n";
}else {
print 
"\n\n[!] NOT FOUND\n\n";
} 
Резултат скрипта с текущим содержанием:
Цитата:

C:\Perl\bin>perl scr\get.pl


[!] FOUND STRING: 'head'



[!] YANDEX FOUND '14878927' PAGES WITH 'head'


Последний раз редактировалось bul.666; 23.02.2008 в 09:32..
 
Ответить с цитированием