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

Форум АНТИЧАТ (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=42999)

LolFEm 24.06.2007 22:48

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

Код:

<?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("Далее&nbsp;",$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: Спасибо за внимание

Isis 24.06.2007 23:32

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("Далее&nbsp;",$html))
            {
            return 
$out;
            }

            
$step $step 10;
            echo 
"Записано $step  записей <br>";
            @
ob_flush();
            
sleep(2);
        }

    }

    
$sringq="Killer Guestbook 0.1";
    
$rezult gogo($sringq);
?>

Записывает в файл
Код:

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

Вывел:
Цитата:

Записано 10 записей
Записано 20 записей
Записано 30 записей
Записано 40 записей
2) Парсить ссылки

hhover 25.06.2007 01:33

Есть более адекватный код с использованием регэкспов, данные о выдаваемых сайтах записываются в массив, как вывести в браузер отчеты и записать инфу в файл - додумаешься сам, я думаю.
PHP код:

<?php
set_time_limit
(0);
echo 
"<pre>";

function 
curl_getsource $url )
{
  
$curl curl_init();
  
curl_setopt $curlCURLOPT_URL$url );
  
curl_setopt $curlCURLOPT_RETURNTRANSFER);
  
$source curl_exec $curl );
  
curl_close $curl );
  return 
$source;
}

function 
query $keyword$start=)
{
  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$resultPREG_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.

LolFEm 26.06.2007 14:33

Спасибо за помощь будем разбираться!


Время: 11:15