alina » 2011.08.08 11:20

Здраствуйте,может поможет ктото разобратся?пишу свой первый граббер с сайта cyka.name     граббер практически готов ,но никак неудается вырезать некоторые элементы со страницы вроде все перепробовала чтото никак........а именно это ссылка "НА Главную"    и   "ВНИМАНИЕ (!)
» Перед просмотром все читаем соглашение сайта."

Подскажите как вырезать стандартные методы вроде некатят

Gemorroj » 2011.08.08 11:41

что такое "стандартные методы"?
не стоит учиться по статьям типа "как написать граббер за 5 минут".
P.S. там по-моему даже банальный str_replace подходит.

alina » 2011.08.08 11:47

нет str_replace  невырезает или у меня руки  не из того места ...

Nu3oN » 2011.08.08 13:18

Посмотри в какой кодировке скрипт парсера? если ansi то смени на utf8...

Gemorroj » 2011.08.08 13:23

alina, выкладывай скрипт, будем все вместе смотреть =)

alina » 2011.08.08 13:47

Код:

1
span style="color: #0000BB"><?phpsession_name('SessionID'); session_start();$host= "cyka.name"; $path="/xxx/?".$_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: text/html, application/xml;q=0.9, application/xhtml+xml, image/png, image/jpeg, image/gif,image/x-bitmap, */*;q=0.1\r\n";$headers.= "Accept-Charset: utf-8;q=0.6 windows-1251;q=0.1*;q=0.1\r\n";$headers.= "Accept-Encoding: utf-8\r\n";$headers.= "Accept-Language: ru, en;q=0.9\r\n";$headers.= "User-Agent: ".$_SERVER ['HTTP_USER_AGENT']."\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=preg_replace('|<!DOCTYPE(.*?)<body>|is','',$file);$file=str_replace('/xxx/index.php?mode=get','http://cyka.name/xxx/index.php?mode=get', $file);//////////////////////////////////// Реклама ////////////////////////////////////////////////////////////$file=str_replace('<b>© cyka.name - 2o1o</b>','', $file);$file=preg_replace('|<a href="http:\/\/cyka\.name">|is','<a href="./index.php">',$file);/////////////////////////////////// Счетчики ////////////////////////////////////////////////////////////$file=str_replace('<a href="http://gigatop.net/in.php?17485"><img src="http://gigatop.net/c.php?17485" alt="sex"/></a>','', $file);$file=str_replace('<a href="http://o5top.ru/in.php?4389"><img src="http://o5top.ru/img.php?4389-small" alt="sex"/></a>','', $file);$file=str_replace('<a href="http://topwap.us/click.php?1351"><img src="http://topwap.us/image.php?1351,small" alt="sex"/></a>','', $file);$file=str_replace('<a href="http://wap-list.mobi/453.in"><img src="http://wap-list.mobi/453.top" alt="sex"/></a>','', $file);$file=str_replace('<a href="http://imtop.ru/11712/in/"><img src="http://imtop.ru/11712/small.png" alt="sex"/></a>','', $file);$file=str_replace('<a href="http://waplog.net/c.shtml?355753"><img src="http://c.waplog.net/355753.cnt" alt="sex"/></a>','', $file);echo $file?>

вот ..............

Nu3oN » 2011.08.08 14:16

добавив после $file=preg_replace('|<!DOCTYPE(.*?)<body>|is','',$file); эту строку:

Код:

1
span style="color: #0000BB"><?php $file = str_replace('<div class="r"><b>ВНИМАНИЕ (!)</b></div>', null, $file); ?>

Все спокойно обрезало!

alina » 2011.08.08 14:17

а остальное??
Добавлено спустя   3 минуты  20 секунд:
незнаю у меня почему то без изменений

Gemorroj » 2011.08.08 14:22

Код:

1
span style="color: #0000BB"><?php$file = preg_replace('/<div class="r">.*\.<br\/><\/div>/sU', '', $file);
alina » 2011.08.08 14:33

и точно это была кодировка.............я то мучалась полдня почти поверила в сверхестественное..............всем спасибо )))))

Nu3oN » 2011.08.08 14:55

Вообще делай как-то так =)

Код:

1
span style="color: #0000BB"><?php$file = file_get_contents('http://cyka.name/xxx/?'.$_SERVER['QUERY_STRING']);$file = str_replace('/xxx/index.php', null, $file);$strType = 'one';preg_match_all('#<div class="f">&\#187; <a href="(.*?)">(.*?)</a>(.*?)</div>#is', $file, $arrLink, PREG_SET_ORDER); if (count($arrLink) < 1) { preg_match_all('#<div class="f"><img.*?src="(.*?)".*?alt="(.*?)".*?><u>Описание:</u>(.*?)<br/>.*?<a href="(.*?)">.*?</a>(.*?)</div>#is', $file, $arrLink, PREG_SET_ORDER); $strType = 'two';}foreach ($arrLink as $key) { if ($strType == 'one') { echo '<a href="'.$key[1].'">'.$key[2].'</a> '.$key[3]; } else if ($strType == 'two') { echo ' <img src="http://cyka.name/xxx/'.$key[1].'" alt="'.$key[2].'" /> <br /> Описание: '.$key[3].'<br /> <a href="'.$key[4].'">Просмотр файла</a> <br /><br /> '; }}?>

Граббер не весь, там еще на просмотр файла нужно что-то соображать...
З.ы и еще лучше бы делать кеш... напрягается машина грабя этот сайт...

Gemorroj » 2011.08.08 15:07

канал забивается и тратится время на загрузку данных, так-то по процессорным ресурсам там нечему сервер нагружать.

Nu3oN » 2011.08.08 15:14

"там нему сервер" не совсем понял :/

Gemorroj » 2011.08.08 16:09

опечатался)
исправил

Nu3oN » 2011.08.08 17:24

ну все же... притормаживает, и это не радует =)

Gemorroj » 2011.08.08 19:47

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

alina » 2011.08.08 20:09

неработает предостмотр в том варианте выложеном выше.........
вот я тут накалякала вроде есть только негрузится перьвью на предосмотре ........как тут?

Код:

1
span style="color: #0000BB"><?phpsession_name('SessionID'); session_start();$host= "cyka.name"; $path="/xxx/?".$_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: text/html, application/xml;q=0.9, application/xhtml+xml, image/png, image/jpeg, image/gif,image/x-bitmap, */*;q=0.1\r\n";$headers.= "Accept-Charset: utf-8;q=0.6 windows-1251;q=0.1*;q=0.1\r\n";$headers.= "Accept-Encoding: utf-8\r\n";$headers.= "Accept-Language: ru, en;q=0.9\r\n";$headers.= "User-Agent: ".$_SERVER ['HTTP_USER_AGENT']."\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=preg_replace('|<!DOCTYPE(.*?)<body>|is','',$file);$file = preg_replace('/<div class="r">.*\.<br\/><\/div>/sU', '', $file);$file=str_replace('/xxx/index.php?mode=get','http://cyka.name/xxx/index.php?mode=get', $file);$file=str_replace('Новости','', $file);$file=str_replace('cyka.name - Free xXx','', $file);$file=str_replace('<img src="pic_index.php','<img src="http://cyka.name/xxx/pic_index.php', $file);//////////////////////////////////// Реклама ////////////////////////////////////////////////////////////$file=str_replace('<b>© cyka.name - 2o1o</b>','', $file);$file=str_replace('<b>© cyka.name</b>','', $file);$file=preg_replace('|<a href="http:\/\/cyka\.name">|is','<a href="./index.php">',$file);$file=preg_replace('|<a href="http://cyka.name/xxx/cyka.name.url">|is','<a href="./wen.ru">',$file);/////////////////////////////////// Счетчики ////////////////////////////////////////////////////////////$file=str_replace('<a href="http://gigatop.net/in.php?17485"><img src="http://gigatop.net/c.php?17485" alt="sex"/></a>','', $file);$file=str_replace('<a href="http://o5top.ru/in.php?4389"><img src="http://o5top.ru/img.php?4389-small" alt="sex"/></a>','', $file);$file=str_replace('<a href="http://topwap.us/click.php?1351"><img src="http://topwap.us/image.php?1351,small" alt="sex"/></a>','', $file);$file=str_replace('<a href="http://wap-list.mobi/453.in"><img src="http://wap-list.mobi/453.top" alt="sex"/></a>','', $file);$file=str_replace('<a href="http://imtop.ru/11712/in/"><img src="http://imtop.ru/11712/small.png" alt="sex"/></a>','', $file);$file=str_replace('<a href="http://waplog.net/c.shtml?355753"><img src="http://c.waplog.net/355753.cnt" alt="sex"/></a>','', $file);echo $file?>
Gemorroj » 2011.08.08 20:30

Код:

1
span style="color: #0000BB"><?php//session_name('SessionID');//session_start();$host = 'cyka.name';$path = '/xxx/?' . $_SERVER ['QUERY_STRING'];$file = '';$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); $headers = ($post ? "POST $path HTTP/1.0\r\n" : "GET $path HTTP/1.0\r\n"); $headers.= "Host: $host\r\n"; $headers.= "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"; $headers.= "Accept-Charset: utf-8;q=0.6 windows-1251;q=0.1*;q=0.1\r\n"; $headers.= "Accept-Encoding: utf-8\r\n"; $headers.= "Accept-Language: ru, en;q=0.9\r\n"; $headers.= "User-Agent: " . $_SERVER ['HTTP_USER_AGENT'] . "\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 = preg_replace('|<!DOCTYPE(.*?)<body>|is','',$file);$file = preg_replace('/<div class="r">.*\.<br\/><\/div>/sU', '', $file);$file=str_replace('/xxx/index.php?mode=get', 'http://cyka.name/xxx/index.php?mode=get', $file);$file=str_replace('Новости', '', $file);$file=str_replace('cyka.name - Free xXx', '', $file);$file=str_replace('<img src="pic_index.php', '<img src="http://cyka.name/xxx/pic_index.php', $file);$file = str_replace('<img src="files/', '<img src="http://cyka.name/xxx/files/', $file);$file = str_replace('<img src="ffmpeg_file.php', '<img src="http://cyka.name/xxx/ffmpeg_file.php', $file);$file = str_replace('<img src="ffmpeg_index.php', '<img src="http://cyka.name/xxx/ffmpeg_index.php', $file);//////////////////////////////////// Реклама ////////////////////////////////////////////////////////////$file=str_replace('<b>© cyka.name - 2o1o</b>', '', $file);$file=str_replace('<b>© cyka.name</b>', '', $file);$file=preg_replace('|<a href="http://cyka\.name">|is', '<a href="./index.php">', $file);$file=preg_replace('|<a href="http://cyka\.name/xxx/cyka\.name\.url">|is', '<a href="./wen.ru">', $file);/////////////////////////////////// Счетчики ////////////////////////////////////////////////////////////$file=str_replace('<a href="http://gigatop.net/in.php?17485"><img src="http://gigatop.net/c.php?17485" alt="sex"/></a>','', $file);$file=str_replace('<a href="http://o5top.ru/in.php?4389"><img src="http://o5top.ru/img.php?4389-small" alt="sex"/></a>','', $file);$file=str_replace('<a href="http://topwap.us/click.php?1351"><img src="http://topwap.us/image.php?1351,small" alt="sex"/></a>','', $file);$file=str_replace('<a href="http://wap-list.mobi/453.in"><img src="http://wap-list.mobi/453.top" alt="sex"/></a>','', $file);$file=str_replace('<a href="http://imtop.ru/11712/in/"><img src="http://imtop.ru/11712/small.png" alt="sex"/></a>','', $file);$file=str_replace('<a href="http://waplog.net/c.shtml?355753"><img src="http://c.waplog.net/355753.cnt" alt="sex"/></a>','', $file);echo $file;?>
alina » 2011.08.08 22:06

Мда уж..............мне еще учится и учится..спасибо

Gemorroj » 2011.08.08 22:16

начни с этого http://tsya.ru xD

Nu3oN » 2011.08.09 23:29

Gemorroj написал:

начни с этого http://tsya.ru xD

Классный сервис гг)))

TLENS » 2011.08.10 03:01

Nu3oN
Ну да правда на практике все равно ошибки.

Karayazi » 2011.09.01 09:28

Здравствуйте, помогите пожалуйста ограбить этот сервис www.websmsonline.com. Я все сделал и каптчу тоже, но при запросе страница тупо обновляеться и никакого ответа.
Заранее благодарю.

Gemorroj » 2011.09.01 11:32

Karayazi, свой код давай. писать за тебя граббер никому не охота.

Karayazi » 2011.09.01 14:36

Вот код, пока ничего не вырезал:

Gemorroj » 2011.09.01 15:47

ну так собно нет никакой обработки POST запросов. тебе нужно через CURL делать будет, а не file_get_contents

Karayazi » 2011.09.01 15:56

Gemorroj но я с курлом не дружу. Так тоже не получается:

Код:

1
span style="color: #0000BB"><?phperror_reporting(0);$path='http://www.websmsonline.com/?'.$_SERVER['QUERY_STRING'];$browser = array(1=>'HTCP3300-Mozilla/4.0(compatible; MSIE 4.01; Windows CE; PPC; 240x320)',2=>'Panasonic-GAD87/A22UP.Link/1.1', 3=>'Panasonic-VS6/1.0/RP1 Profile/MIDP-2.0 Configuration/CLDC-1.1',4=>'LGE-VX8300/1.0 UP.Browser/6.2.3.2 (GUI)MMP/2.0',5=>'LG-C1100 MIC/WAP2.0MIDP-2.0/CLDC-1.0');shuffle($browser);$browser = $browser[0];$header[] = 'Accept: text/xml,application/xml,application/xhtml+xml,text/html;q=0.9,text/plain;q=0.8,image/png,*/*;q=0.5';$header[] = 'Connection: Close';$header[] = 'Accept-Charset:iso-8859-1, utf-8, utf-16,*;q=0.1';$header[] = 'Accept-Language:ru-RU,ru;q=0.9,en;q=0.8';$header[] = 'Host: www.websmsonline.com';$header[] = 'User-Agent: '.$browser;$header[] = 'Referer: http://www.websmsonline.com';$curl = curl_init();curl_setopt($curl, CURLOPT_URL,$path);curl_setopt($curl, CURLOPT_HTTPHEADER, $header);curl_setopt($curl, CURLOPT_AUTOREFERER, false);curl_setopt($curl, CURLOPT_RETURNTRANSFER, true);curl_setopt($curl, CURLOPT_FOLLOWLOCATION, true);curl_setopt($curl, CURLOPT_HEADER, false);$file = curl_exec($curl);curl_close($curl);if($file){$file=str_replace('<img src="/rand0mcaptcha.phtml"','<img src= "img.php"',$file);}else{$file='сервис временнонедоступен<br/>';}echo $file;?>
WapStyle » 2011.09.01 21:32

Учи. Нечего сложного нет http://php.net/manual/ru/book.curl.php

Karayazi » 2011.09.01 22:35

Там ничего не понял.

Nu3oN » 2011.09.01 22:59

Gemorroj написал:

ну так собно нет никакой обработки POST запросов. тебе нужно через CURL делать будет, а не file_get_contents

Почему же? можно реализовать и POST через file_get_contents()

Код:

1
span style="color: #0000BB"><?php$arr = array( 'http' => array( 'method'=>"POST", 'header'=>"Content-Type: text/html; charset=utf-8" ) ); $context = stream_context_create($arr); $result = file_get_contents('http://example.com', false, $context); ?>

Вопрос только в рациональности этого решения)))

Gemorroj » 2011.09.02 09:15

Nu3oN, ну таки да)

Karayazi » 2011.09.02 15:48

И как же мне реализовать это, помогите пожалуйста.

Karayazi » 2011.09.02 19:36

Неужели так трудно написать пару кодов для знающих?

Gemorroj » 2011.09.02 19:49

тебе все дали. если нужна конкретика, то задавай конкретные вопросы.
мне лично совсем не охота перепечатывать тут мануал по работе с курлом.

Karayazi » 2011.09.02 20:50

Gemorroj ну хот убей меня, но у меня никак не получается, это для вас, знающих легко, а я не могу реализовать все это. Тем более я с тела, у меня комп нету.

Gemorroj » 2011.09.02 22:43

давай свои наработки, будем вместе исправлять

WapStyle » 2011.09.02 22:51

пиши что есть, без твоих наработок тебе мы не поможем

Karayazi » 2011.09.02 23:37

Вот архив, просто надо сделать так, чтобы скрипт работал:

TLENS » 2011.09.04 00:26

Эх раньше работал только с грабами, сейчас смотреть на них не Могу! (Парсеры рулят)

Karayazi » 2011.09.04 16:29

TLENS можеть все таки поможеш?

Karayazi » 2011.09.05 13:47

И тищина.

Gemorroj » 2011.09.05 14:33

потому что нахер никому так не интересно, типа - нате исправляйте.
посмотрел скрипт. ну блин, тупая копипаста же.
curl_setopt($ch, - что такое $ch ?
кто тебя так учил заголовки формировать? там есть определенные правила с переносом строк.
если ты хочешь чтобы за тебя написали скрипт (а иного варианта я не вижу, судя по коду) то вряд ли ты обратился по адресу.

DarkRiDDeR » 2011.09.05 14:40

Да, блин, меня это тоже добивает, пиши им скрипты просто так(есть такие, что форумы просят), или исправляй тупейшии ошибки. Я никого не просил всякую тупизну исправлять, когда учился(ещё как бы учусь). Программирование тоже не лёгкое дело, а то понаедут всякие, сначала прочти пять раз найденную инфу, час подумай. а потом уже спрашивай, скрипты тупые не тыч. Хочешь, чтобы всё за тебя сделали, так плати мани-мани.

Karayazi » 2011.09.06 08:11

Готов заплатить, скажите цену, кто возмется?
Вам бы только платить.

DarkRiDDeR » 2011.09.06 11:05

Лови бесплатно. Минут 40 потратил: сам в Curl не шари сильно. Зато научился малость. Хотел своим сайтом заняться, да ты тут. Хоть польза есть, да скрипт пригодится.

Karayazi » 2011.09.06 18:44

DarkRiDDeR спасибо большое, скажи пожалуйста, а как добавить свой техт к отправленному сообщению, ну типа имя домена.

DarkRiDDeR » 2011.09.07 14:15

if(isset($_POST['какое-там'])) $_POST['какое-там']  .= 'http://site.ru';
Это в начале напишешь.

Karayazi » 2011.09.07 16:17

DarkRiDDeR все, работает, большое спасибо.