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

Подскажите как вырезать стандартные методы вроде некатят
#2. Gemorroj Off (107)
Administrator
2011.08.08 11:11
что такое "стандартные методы"?
не стоит учиться по статьям типа "как написать граббер за 5 минут".
P.S. там по-моему даже банальный str_replace подходит.
#3. alina Off (0)
Участник
2011.08.08 11:11
нет str_replace  невырезает или у меня руки  не из того места ...
#4. Nu3oN Off (11)
Moderator
2011.08.08 13:01
Посмотри в какой кодировке скрипт парсера? если ansi то смени на utf8...
Я буду лучше голоден, но между креслом и рулем и на дороге.
#5. Gemorroj Off (107)
Administrator
2011.08.08 13:01
alina, выкладывай скрипт, будем все вместе смотреть smile
#6. alina Off (0)
Участник
2011.08.08 13:01
Код:
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?>
вот ..............
#7. Nu3oN Off (11)
Moderator
2011.08.08 14:02
добавив после $file=preg_replace('|<!DOCTYPE(.*?)<body>|is','',$file); эту строку:
Код:
span style="color: #0000BB"><?php $file = str_replace('<div class="r"><b>ВНИМАНИЕ (!)</b></div>', null, $file); ?>
Все спокойно обрезало!
Я буду лучше голоден, но между креслом и рулем и на дороге.
#8. alina Off (0)
Участник
2011.08.08 14:02
а остальное??
Добавлено спустя   3 минуты  20 секунд:
незнаю у меня почему то без изменений
#9. Gemorroj Off (107)
Administrator
2011.08.08 14:02
Код:
span style="color: #0000BB"><?php$file = preg_replace('/<div class="r">.*\.<br\/><\/div>/sU', '', $file);
#10. alina Off (0)
Участник
2011.08.08 14:02
и точно это была кодировка.............я то мучалась полдня почти поверила в сверхестественное..............всем спасибо )))))
#11. Nu3oN Off (11)
Moderator
2011.08.08 14:02
Вообще делай как-то так smile

Код:
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 /> '; }}?>
Граббер не весь, там еще на просмотр файла нужно что-то соображать...
З.ы и еще лучше бы делать кеш... напрягается машина грабя этот сайт...
Я буду лучше голоден, но между креслом и рулем и на дороге.
#12. Gemorroj Off (107)
Administrator
2011.08.08 15:03
канал забивается и тратится время на загрузку данных, так-то по процессорным ресурсам там нечему сервер нагружать.
Отредактировано Gemorroj (2011.08.08 16:04)
#13. Nu3oN Off (11)
Moderator
2011.08.08 15:03
"там нему сервер" не совсем понял hmm
Я буду лучше голоден, но между креслом и рулем и на дороге.
#14. Gemorroj Off (107)
Administrator
2011.08.08 16:04
опечатался)
исправил
#15. Nu3oN Off (11)
Moderator
2011.08.08 17:05
ну все же... притормаживает, и это не радует smile
Я буду лучше голоден, но между креслом и рулем и на дороге.
#16. Gemorroj Off (107)
Administrator
2011.08.08 19:07
так да, ты все верно сказал. просто я уточнил что проблема в нагрузке на канал.
#17. alina Off (0)
Участник
2011.08.08 20:08
неработает предостмотр в том варианте выложеном выше.........
вот я тут накалякала вроде есть только негрузится перьвью на предосмотре ........как тут?

Код:
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?>
#18. Gemorroj Off (107)
Administrator
2011.08.08 20:08
Код:
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;?>
#19. alina Off (0)
Участник
2011.08.08 22:10
Мда уж..............мне еще учится и учится..спасибо
#20. Gemorroj Off (107)
Administrator
2011.08.08 22:10
начни с этого http://tsya.ru xD
#21. Nu3oN Off (11)
Moderator
2011.08.09 23:11
Gemorroj написал:
начни с этого http://tsya.ru xD
Классный сервис гг)))
Я буду лучше голоден, но между креслом и рулем и на дороге.
#22. TLENS Off (14)
Moderator
2011.08.10 03:03
Nu3oN
Ну да правда на практике все равно ошибки.
Отредактировано TLENS (2011.08.10 03:03)
#23. Karayazi Off (1)
Участник
2011.09.01 09:09
Здравствуйте, помогите пожалуйста ограбить этот сервис www.websmsonline.com. Я все сделал и каптчу тоже, но при запросе страница тупо обновляеться и никакого ответа.
Заранее благодарю.
#24. Gemorroj Off (107)
Administrator
2011.09.01 11:11
Karayazi, свой код давай. писать за тебя граббер никому не охота.
#25. Karayazi Off (1)
Участник
2011.09.01 14:02
Вот код, пока ничего не вырезал:
Вложения
sms.zip 598b [загрузок: 525]
#26. Gemorroj Off (107)
Administrator
2011.09.01 15:03
ну так собно нет никакой обработки POST запросов. тебе нужно через CURL делать будет, а не file_get_contents
#27. Karayazi Off (1)
Участник
2011.09.01 15:03
Gemorroj но я с курлом не дружу. Так тоже не получается:
Код:
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;?>
Отредактировано Karayazi (2011.09.01 16:04)
#28. WapStyle Off (3)
Участник
2011.09.01 21:09
Учи. Нечего сложного нет http://php.net/manual/ru/book.curl.php
#29. Karayazi Off (1)
Участник
2011.09.01 22:10
Там ничего не понял.
#30. Nu3oN Off (11)
Moderator
2011.09.01 22:10
Gemorroj написал:
ну так собно нет никакой обработки POST запросов. тебе нужно через CURL делать будет, а не file_get_contents
Почему же? можно реализовать и POST через file_get_contents()
Код:
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); ?>
Вопрос только в рациональности этого решения)))
Я буду лучше голоден, но между креслом и рулем и на дороге.
#31. Gemorroj Off (107)
Administrator
2011.09.02 09:09
Nu3oN, ну таки да)
#32. Karayazi Off (1)
Участник
2011.09.02 15:03
И как же мне реализовать это, помогите пожалуйста.
#33. Karayazi Off (1)
Участник
2011.09.02 19:07
Неужели так трудно написать пару кодов для знающих?
#34. Gemorroj Off (107)
Administrator
2011.09.02 19:07
тебе все дали. если нужна конкретика, то задавай конкретные вопросы.
мне лично совсем не охота перепечатывать тут мануал по работе с курлом.
#35. Karayazi Off (1)
Участник
2011.09.02 20:08
Gemorroj ну хот убей меня, но у меня никак не получается, это для вас, знающих легко, а я не могу реализовать все это. Тем более я с тела, у меня комп нету.
Отредактировано Karayazi (2011.09.02 21:09)
#36. Gemorroj Off (107)
Administrator
2011.09.02 22:10
давай свои наработки, будем вместе исправлять
#37. WapStyle Off (3)
Участник
2011.09.02 22:10
пиши что есть, без твоих наработок тебе мы не поможем
#38. Karayazi Off (1)
Участник
2011.09.02 23:11
Вот архив, просто надо сделать так, чтобы скрипт работал:
Вложения
archive.zip 2kb [загрузок: 521]
#39. TLENS Off (14)
Moderator
2011.09.04 00:12
Эх раньше работал только с грабами, сейчас смотреть на них не Могу! (Парсеры рулят)
#40. Karayazi Off (1)
Участник
2011.09.04 16:04
TLENS можеть все таки поможеш?
#41. Karayazi Off (1)
Участник
2011.09.05 13:01
И тищина.
#42. Gemorroj Off (107)
Administrator
2011.09.05 14:02
потому что нахер никому так не интересно, типа - нате исправляйте.
посмотрел скрипт. ну блин, тупая копипаста же.
curl_setopt($ch, - что такое $ch ?
кто тебя так учил заголовки формировать? там есть определенные правила с переносом строк.
если ты хочешь чтобы за тебя написали скрипт (а иного варианта я не вижу, судя по коду) то вряд ли ты обратился по адресу.
#43. DarkRiDDeR Off (4)
Участник
2011.09.05 14:02
Да, блин, меня это тоже добивает, пиши им скрипты просто так(есть такие, что форумы просят), или исправляй тупейшии ошибки. Я никого не просил всякую тупизну исправлять, когда учился(ещё как бы учусь). Программирование тоже не лёгкое дело, а то понаедут всякие, сначала прочти пять раз найденную инфу, час подумай. а потом уже спрашивай, скрипты тупые не тыч. Хочешь, чтобы всё за тебя сделали, так плати мани-мани.
#44. Karayazi Off (1)
Участник
2011.09.06 08:08
Готов заплатить, скажите цену, кто возмется?
Вам бы только платить.
#45. DarkRiDDeR Off (4)
Участник
2011.09.06 11:11
Лови бесплатно. Минут 40 потратил: сам в Curl не шари сильно. Зато научился малость. Хотел своим сайтом заняться, да ты тут. Хоть польза есть, да скрипт пригодится.
Вложения
sms_grab_websmsonline.zip 3kb [загрузок: 573]
#46. Karayazi Off (1)
Участник
2011.09.06 18:06
DarkRiDDeR спасибо большое, скажи пожалуйста, а как добавить свой техт к отправленному сообщению, ну типа имя домена.
#47. DarkRiDDeR Off (4)
Участник
2011.09.07 14:02
if(isset($_POST['какое-там'])) $_POST['какое-там']  .= 'http://site.ru';
Это в начале напишешь.
#48. Karayazi Off (1)
Участник
2011.09.07 16:04
DarkRiDDeR все, работает, большое спасибо.
Отредактировано Karayazi (2011.09.07 16:04)
Страниц: 13 4 5 Все
Главная
WEB
PunBB Mod v0.6.2
0.039 s