12. ramzes, НЕ ПЕРЕДЕЛЫВАЛ ЧИТАЙ:
Итак продолжим писать граберы.Нам известно что многие граберы работают при наличии открытого 80 порта.Как же нам сделать такой грабер? Заместо той строки которую мы использовали при написании обычного грабера
$file = file("http://адрес_сайта_который_грабим/?$QUERY_STRING");
$file= @implode("",$file);
Вставляем другое:
$host = "сайт_который_грабим";
$path = "/путь_до_странички_которую_грабим/?$QUERY_STRING";
$fp = fsockopen($host,80,$errno,$errstr,30);
if(!$fp) echo"$errstr ($errno)
\n";
else{ $headers = "GET $path HTTP/1.0\r\n";
$headers .= "Host: $host\r\n";
$headers .= "Accept:*\r\n";
$headers .= "Accept-Charset: UTF-8\r\n";
$headers .= "Accept-Charset: *\r\n";
$headers .= "Accept-Encoding: deflate\r\n";
$headers .= "Accept-Language: ru\r\n";
$headers .= "Referer: сайт_который_грабим\r\n";
$headers .= "User-Agent: Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1; ru) Opera 8.01\r\n\r\n";fwrite($fp,$headers);
while($file != "\r\n") $file = fgets($fp,128);
$file = "";
while(!feof($fp)) $file .= fgets($fp,4096);
fclose($fp);
}
Теперь давайте разбираться что к чему,и что куда вскрывать:
Начнем с верха:
$host = "сайт_который_грабим";
За место сайт_который_грабим пишем адрес сайтабез http://
Например:
graber.nov.ru
Смотрим дальше:
$path = "/путь_до_странички_которую_грабим/?$QUERY_STRING";
Будем грабить мою гостевую и за место /путь_до_странички_которую_грабим/ пишем /gb/
Думаю пока всё понятно.Смотрим дальше и ищем такую строку
$headers .= "Referer:сайт_который_грабим\r\n";
Так же как и в первой строке заменяем сайт_который_грабим на адрес сайта без http://
Ну вот в принципе и всё.Реклама вырезается так же.Инклудим шапку и ноги в грабер.
ОТКУДА У МЕНЯ ТОТ ГРАБ КОТОРЫЙ Я СГРАБИЛ ЕСЛИ АДМИНА НЕ ЗНАЮ?