Собственно вот решил написать такой скрипт для сбора линков на определённые кеи, форуы, гесты.... в общем что нужно то и парсим.... Code: <?php function gogo ($query) { $fileLink="c:\\outFile.txt"; $Fout=fopen($fileLink,"w+"); $query=rawurlencode($query); $end=0; $step=0; while(!$end) { $html=file_get_contents("http://gogo.ru/web?&q=$query&sf=$step`"); $tmp=explode("width=\"90%\"><a href=\"",$html); for ($i=1; $i<count($tmp);$i++) { $a=explode("\"",$tmp[$i]); $out[]=$a[0]; fwrite($Fout,$a[0]."\n"); } if (!eregi("Далее ",$html)) { return $out; } $step=$step+10; Print "Записано $step записей <br>"; @ob_flush(); sleep(2); } } $SringQ="Killer Guestbook 0.1"; // Строка запроса $rezult=gogo($SringQ); ?> 1) Есть такая вот проблема что когда пытаюся вывести в цикле сколько записано записей в файл то данные в браузер не попадают.... в чём может быть проблема... и как решить возможно... 2) Мне например нужно создать базу гостевух... но в поиске много мусора... типа реклам,скачать и т.д.... для отсеивания такого... какой может быть наиболее разумный способ? для отброса большего мусора можно конечно открывать сам линк и парсить его на полное сходство с запросом... будут ли ещё идеи>? p.s: Спасибо за внимание
1) PHP: <?php set_time_limit(0); function gogo($query) { $fileLink ="outfile.txt"; $fout = fopen($fileLink,"w+"); $query = rawurlencode($query); $end = 0; $step = 0; while(!$end) { $html = file_get_contents("http://gogo.ru/web?&q=$query&sf=$step`"); $tmp = explode("width=\"90%\"><a href=\"",$html); for ($i = 1; $i < count($tmp); $i++) { $a = explode("\"",$tmp[$i]); $out[] = $a[0]; fwrite($fout,$a[0]."\r\n"); } if (!eregi("Далее ",$html)) { return $out; } $step = $step + 10; echo "Записано $step записей <br>"; @ob_flush(); sleep(2); } } $sringq="Killer Guestbook 0.1"; $rezult = gogo($sringq); ?> Записывает в файл Code: http://softsearch.ru/programs/140-553-killer-guestbook-download.shtml http://www.woweb.ru/load/55-1-0-1410 http://webforus.com.ru/w/scr/?id=127 http://www.internet-technologies.ru/scripts/script_802.html http://softobzor.ru/alfovite/script/K.html http://www.phpclub.ru/?m=app&s=35 http://inattack.ru/program/215.html http://exsoft.org/2006/05/22/print:page,1,2652_php_script.html http://rasta0.fromru.com/ http://www.webrelax.com/all/19-2-2006 http://softsearch.ru/programs/140-553-killer-guestbook-download.shtml http://www.woweb.ru/load/55-1-0-1410 http://webforus.com.ru/w/scr/?id=127 http://www.internet-technologies.ru/scripts/script_802.html http://softobzor.ru/alfovite/script/K.html http://www.phpclub.ru/?m=app&s=35 http://inattack.ru/program/215.html http://exsoft.org/2006/05/22/print:page,1,2652_php_script.html http://rasta0.fromru.com/ http://www.webrelax.com/all/19-2-2006 http://softsearch.ru/programs/140-553-killer-guestbook-download.shtml http://www.woweb.ru/load/55-1-0-1410 http://webforus.com.ru/w/scr/?id=127 http://www.internet-technologies.ru/scripts/script_802.html http://softobzor.ru/alfovite/script/K.html http://www.phpclub.ru/?m=app&s=35 http://inattack.ru/program/215.html http://exsoft.org/2006/05/22/print:page,1,2652_php_script.html http://rasta0.fromru.com/ http://www.webrelax.com/all/19-2-2006 http://softsearch.ru/programs/140-553-killer-guestbook-download.shtml http://www.woweb.ru/load/55-1-0-1410 http://webforus.com.ru/w/scr/?id=127 http://www.internet-technologies.ru/scripts/script_802.html http://softobzor.ru/alfovite/script/K.html http://www.phpclub.ru/?m=app&s=35 http://inattack.ru/program/215.html http://exsoft.org/2006/05/22/print:page,1,2652_php_script.html http://rasta0.fromru.com/ http://www.webrelax.com/all/19-2-2006 Вывел: 2) Парсить ссылки
Есть более адекватный код с использованием регэкспов, данные о выдаваемых сайтах записываются в массив, как вывести в браузер отчеты и записать инфу в файл - додумаешься сам, я думаю. PHP: <?php set_time_limit(0); echo "<pre>"; function curl_getsource ( $url ) { $curl = curl_init(); curl_setopt ( $curl, CURLOPT_URL, $url ); curl_setopt ( $curl, CURLOPT_RETURNTRANSFER, 1 ); $source = curl_exec ( $curl ); curl_close ( $curl ); return $source; } function query ( $keyword, $start=0 ) { global $max_page; if ( $start >= $max_page ) die ( "All over" ); $keyword = trim ( $keyword ); $keyword = str_replace ( " ", "+", $keyword ); $url = "http://www.google.com/search?hl=en&q=" . $keyword . "&start=" . $start; $source = curl_getsource ( $url ); preg_match_all ( "/\<h2\sclass\=r\>\<a\shref\=\"([^\"]+?)\"[^\>]+?\>(.+?)\<\/a\>.+?class\=\"j\"\>\<font\ssize\=\-1\>(.+?)\<br\>/is", $source, $result, PREG_SET_ORDER ); foreach ( $result as $info ) { $link = $info[1]; $title = $info[2]; $desc = $info[3]; $links[] = array ( 'link' => $link, 'title' => $title, 'desc' => $desc ); } print_r($links); $start += 10; query ( $keyword, $start ); } $max_page = 30; query ( 'keyword' ); ?> А прошлый код, кстати, продублировал 4 раза линки с первой страницы. Заметно даже в посте Isis.