Funções para buscas

Started by branco, 01 de April , 2008, 06:59:52 PM

Previous topic - Next topic

0 Members and 1 Guest are viewing this topic.

branco

como vamos utilizar mais no futuro, vou liberar aqui de uma vez algumas classes que fiz..

busca no Google

Code (php) Select
function getGoogle($string,$pages=1) {
&
nbsp; &nbsp$num 100# pega 100 resultados por pagina
  &nbsp$start 0;&nbsp# inicia do resultado 0
  &nbsp$buffer "";
&
nbsp;   do {
&
nbsp;     &nbsp$handle fopen("http://www.google.com.br/search?&q=allinurl:$string&num=$num&start=$start",'r'); 
&
nbsp;       while(!feof($handle)) {
&
nbsp;         &nbsp$buffer .= fread($handle8192);
&
nbsp;           if(eregi("We're sorry...",$buffer)) {
&
nbsp;             &nbspfclose($handle);
&
nbsp;               break 2;
&
nbsp;           }&nbsp
&
nbsp;       }&nbsp
&
nbsp;     &nbspfclose($handle); 
&
nbsp;     &nbsp
&
nbsp;       if($pages 1) {
&
nbsp;         &nbsp$start += 100;
&
nbsp;       }
&
nbsp;     &nbspsleep(5);
&
nbsp;   } while(--$pages);
&
nbsp; &nbsp
&
nbsp; &nbsp$content getLinks($buffer);
&
nbsp;   return $content;
}&
nbsp
 


busca no cadê

Code (php) Select
function getCade($string,$pages=1) {
&
nbsp; &nbsp$num 100# pega 100 resultados por pagina
  &nbsp$start 1;&nbsp# inicia do resultado 0
  &nbsp$end 1;
&
nbsp; &nbsp$buffer "";
&
nbsp;   do {
&
nbsp;     &nbsp$handle fopen("http://cade.search.yahoo.com/search?&p=inurl:$string&n=$num&start=$start&b=$end",'r');
&
nbsp;       if($handle == false) {
&
nbsp;           break 1;
&
nbsp;       }
&
nbsp;       while(!feof($handle)) {
&
nbsp;         &nbsp$buffer .= fread($handle8192);
&
nbsp;           if(eregi("erro 999",$buffer)) {
&
nbsp;             &nbspfclose($handle);
&
nbsp;               break 2;  &nbsp
&
nbsp;           }
&
nbsp;       }&nbsp
&
nbsp;     &nbspfclose($handle); 
&
nbsp;     &nbsp
&
nbsp;       if($pages 1) {
&
nbsp;         &nbsp$end += 100;
&
nbsp;       }
&
nbsp;     &nbspsleep(5);
&
nbsp;   } while(--$pages);
&
nbsp; &nbsp
&
nbsp; &nbsp$content getLinks($buffer);
&
nbsp;   return $content;
}&
nbsp
 
 


busca no live.com

Code (php) Select
function getLive($string,$pages=1) {
&
nbsp; &nbsp$num 11# pega 11 resultados por pagina, na verdade são 10
  &nbsp$buffer ="";
&
nbsp;   do {
&
nbsp;     &nbsp$handle fopen("http://search.live.com/results.aspx?q=$string&scope=&first=$num",'r'); 
&
nbsp;       while(!feof($handle)) {
&
nbsp;         &nbsp$buffer .= fread($handle8192);
&
nbsp;       }&nbsp
&
nbsp;     &nbspfclose($handle); 
&
nbsp;     &nbsp
&
nbsp;       if($pages 1) {
&
nbsp;         &nbsp$num += 10;
&
nbsp;       }
&
nbsp;   } while(--$pages);
&
nbsp; &nbsp
&
nbsp; &nbsp$content getLinks($buffer);
&
nbsp;   return $content;
}
 

É importante observar que essas funções não formatam oque você procura, então se for querer links por exemplo, desenvolvi essa função:

Code (php) Select
function getLinks(&$buffer) {
&
nbsp; &nbsppreg_match_all('/href="([^"> ]*)/',$buffer,$matches);
&
nbsp;   foreach($matches[1] as $value) {
&
nbsp;       if(eregi(".",$value) && !preg_match('/(google|orkut|live\.com|cade)/',$value)) {&nbsp
&
nbsp;         &nbsp$matches_pure[] = $value
&
nbsp;       }
&
nbsp;   }
&
nbsp;   unset($matches);
&
nbsp;   unset($buffer);
&
nbsp; &nbsp
&
nbsp;   foreach($matches_pure as $key => $value) {
&
nbsp;       if(preg_match('/^\//',$value)) {
&
nbsp;           unset($matches_pure[$key]);       
&
nbsp;       }
&
nbsp;       elseif(preg_match('/^http/',$value) == && preg_match('/^https/',$value) == 0) {
&
nbsp;         &nbsp$matches_pure[$key] = 'http://' $value;
&
nbsp;       }   
&
nbsp;   }


&
nbsp; &nbsp$links = array();
&
nbsp;   foreach($matches_pure as $value) { 
&
nbsp;     &nbsppreg_match('/https?:\/\/[^\/]*/',$value,$first_step); # get content in http://..../
      &nbsp$second_step preg_split('/https?:\/\/[^\/]*/',$value); # get /.../..../..., the rest of url
      &nbsp$host preg_replace('/https?:\/\//','',$first_step[0]);
&
nbsp;     &nbsp$url $second_step[1];
&
nbsp;     &nbsp$links[$host] = $url;      &nbsp
&
nbsp;   }
&
nbsp;   unset($matches_pure);
&
nbsp; &nbsp
&
nbsp;   return $links;

}
 


Criei um outro tópico com um exemplo legal da utilização dessas funções, procurem por Scan Rpc.

Até
Olha o trem... Quem vai ficar, quem vai partir? Quem vai chorar, quem vai sorrir?