Форум АНТИЧАТ

Форум АНТИЧАТ (https://forum.antichat.xyz/index.php)
-   PHP, PERL, MySQL, JavaScript (https://forum.antichat.xyz/forumdisplay.php?f=37)
-   -   Научите правильно писать грабберы (https://forum.antichat.xyz/showthread.php?t=98724)

Fighter 30.12.2008 23:04

Научите правильно писать грабберы
 
Научите правильно писать грабберы! Скоко непытался, неробаит! Пишу код
Код:

<?php

$file = file ("http://site.ru?$QUERY_STRING");
$file = implode ("",$file);
$file = str_replace('То, что требуется заменить','То, на что надо заменить',$file);
//вырезаю разную рекламу
echo $f;
?>

Страница открывается, но дальше никуда немогу перейти! (url was not found)
Как вы пишете грабы?

P3L3NG 30.12.2008 23:07

http://www.google.ru/search?q=%D0%BD%D0%B0%D0%BF%D0%B8%D1%81%D0%B0%D0%B D%D0%B8%D0%B5+%D0%B3%D1%80%D0%B0%D0%B1%D0%B1%D0%B5 %D1%80%D0%BE%D0%B2+%D0%BD%D0%B0+php&ie=utf-8&oe=utf-8&aq=t&rls=org.mozilla:ru:official&client=firefo x-a

Zitt 31.12.2008 00:57

echo $file[1];

.::BARS::. 31.12.2008 04:33

PHP код:

<?php 
$accept 
"Accept: text/html, application/xml;q=0.9, application/xhtml+xml, image/png, image/jpeg, image/gif,image/x-bitmap, */*;q=0.1\r\n";
$accept_language "Accept-Language: ru, en;q=0.9\r\n";
$accept_charset "Accept-Charset: utf-8;q=0.6 windows-1251;q=0.1 *;q=0.1\r\n";
$referer "Referer: http://хост/страница.php\r\n"//подумай что писать дабы не палить себя
$conection "Connection: Close\r\n";
$host"хост"//в виде site.ru
$path="/страница.php?".$_SERVER['QUERY_STRING'];
$fp=fsockopen($host,80,$errno$errstr,10);
if(!
$fp) {
echo 
"$errstr ($errno)<br/>\n";
} else {
$data "";$post=0;
foreach(
$_POST as $key=>$value){$post=1;
    
$data.="&$key=$value";}
if(
$data)$data=substr($data,1);
if(
$post)
$headers "POST $path HTTP/1.0\r\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 .= "User-Agent: Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1; ru) Opera 9.50\r\n";
if(
$post){
$headers .= "Content-type: application/x-www-form-urlencoded\r\n";
$headers .= "Content-Length: ".strlen ($data)."\r\n";
$headers .= "\r\n";
$headers .= $data;}else $headers.="\r\n";
@
fwrite($fp$headers);
while(
$file != "\r\n"$file = @fgets($fp128);
$file '';
while(!
feof($fp)) $file .= @fgets($fp4096);
@
fclose($fp); }

$file=str_replace('что','на что',$file); //замена

echo $file;
?>

все описывать не буду, т.к. просто лень....

с
PHP код:

@fclose($fp); } 

до
PHP код:

echo $file

каждый извращается как хочет.....

.::BARS::. 31.12.2008 04:35

PHP код:

$accept "Accept: text/html, application/xml;q=0.9, application/xhtml+xml, image/png, image/jpeg, image/gif,image/x-bitmap, */*;q=0.1\r\n"
$accept_language "Accept-Language: ru, en;q=0.9\r\n"
$accept_charset "Accept-Charset: utf-8;q=0.6 windows-1251;q=0.1 *;q=0.1\r\n"
$referer "Referer: http://хост/страница.php\r\n"//подумай что писать дабы не палить себя 
$conection "Connection: Close\r\n"

забыл, это в голову инклудь.. либо убери... на твое усмотрение...

.:EnoT:. 31.12.2008 08:26

Читай про строковые функции и регулярки....вот и весь мега секрет)
и главное правило имхо...не пихай везде сокеты и особенно курл....многие страницы легче получать через fopen() или file_get_conyents(), а не изображать из себя крутого чувака который пихает курл везде...

Fighter 31.12.2008 12:56

BARS спасибо! Седня попробую!

Fighter 31.12.2008 14:54

Вот пример http://fankk.ru/serv/sport.php
Код
Код:

<?php
error_reporting(0);
$accept = "Accept: text/html, application/xml;q=0.9, application/xhtml+xml, image/png, image/jpeg, image/gif,image/x-bitmap, */*;q=0.1\r\n";
$accept_language = "Accept-Language: ru, en;q=0.9\r\n";
$accept_charset = "Accept-Charset: utf-8;q=0.6 windows-1251;q=0.1 *;q=0.1\r\n";
$referer = "Referer: http://fank.ru/index.php\r\n"; //подумай что писать дабы не палить себя
$conection = "Connection: Close\r\n";
$host= "m.sports.ru"; //в виде site.ru
$path="/index.php?".$_SERVER['QUERY_STRING'];
$fp=fsockopen($host,80,$errno, $errstr,10);
if(!$fp) {
echo "$errstr ($errno)<br/>\n";
} else {
$data = "";$post=0;
foreach($_POST as $key=>$value){$post=1;
$data.="&$key=$value";}
if($data)$data=substr($data,1);
if($post)
$headers = "POST $path HTTP/1.0\r\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 .= "User-Agent: Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1; ru) Opera 9.50\r\n";
if($post){
$headers .= "Content-type: application/x-www-form-urlencoded\r\n";
$headers .= "Content-Length: ".strlen ($data)."\r\n";
$headers .= "\r\n";
$headers .= $data;}else $headers.="\r\n";
@fwrite($fp, $headers);
while($file != "\r\n") $file = @fgets($fp, 128);
$file = '';
while(!feof($fp)) $file .= @fgets($fp, 4096);
@fclose($fp); }

$file=str_replace('Реклама','',$file);
$file=str_replace('<img src="/logo.gif" width="115" height="36" alt=""/>','',$file);
$file=str_replace('<a href="http://waplog.net/ru/c.shtml?38290"><img src="http://c.waplog.net/ru/38290.cnt?trafsports=1" alt="waplog" border="0" /></a>','',$file);

$file=str_replace('http://m.sports.ru/index.php','http://fankk.ru/serv/sport.php',$file);
echo $file;
?>

Страницу открывает, Но нечиго неробит! Где я допустил ошибки?

inlanger 31.12.2008 16:05

А шо он должен робить? Песни петь?

.:EnoT:. 31.12.2008 16:12

Песни петь и на ложках играть)
Асепты кстати ни к чему..


Время: 20:51