Usamos cookies para medir audiência e melhorar sua experiência. Você pode aceitar ou recusar a qualquer momento. Veja sobre o iMasters.
Criando um robó em php
você vai precisar:
Ir ao nosso multicanal no tntabordo para pegar a classe: http://www.tntabordo.com/php.net
Vou interagir com vocês atravéz do nosso multicanal no tntabordo citado acima.
Vou postar separado e depois tudo junto:
Primeiro chame a classe; lá no nosso multicanal damos o nome de bot.class por que tudo que é incluído no code php vira php independente da extenção do arquivo incluído.
require('bot.class');
Agora vamos criar um novo objeto com classe wwwebbot{}.
$bot = new wwwebbot();
Agora vamos setar todos os parametros usando uma função conhecida que é CURL. Vamos ver como fica a url de imagens do google. você poderá enviar sua tag de busca para esta página usando aqui a tag vai se chamar fotos veja ali em q=.
$tag='fotos'; // Poderia ser $tag=strip_tags($_GET['tag']);
$bot->optrequest = array(
CURLOPT_URL => 'http://www.google.com.br/search?hl=pt-BR&safe=off&gbv=2&sout=1&biw=1024&bih=548&tbm=isch&sa=1&q='.$tag.'',
CURLOPT_RETURNTRANSFER => TRUE,
CURLOPT_HEADER => FALSE,
CURLOPT_FOLLOWLOCATION => FALSE,
CURL_AUTOREFERER => FALSE,
CURL_CONECTTIMEOUT => 5,
CURL_TIMEOUT => 5,
CURL_VERBOSE => TRUE, );
Agora vamos iniciar nosso bot;
$bot->init();
Agora tudo junto:
<? require('bot.class');
$tag='fotos'; // Poderia ser $tag=strip_tags($_GET['tag']);
$bot = new wwwebbot();
$bot->optrequest = array(
CURLOPT_URL => 'http://www.google.com.br/search?hl=pt-BR&safe=off&gbv=2&sout=1&biw=1024&bih=548&tbm=isch&sa=1&q='.$tag.'',
CURLOPT_RETURNTRANSFER => TRUE,
CURLOPT_HEADER => FALSE,
CURLOPT_FOLLOWLOCATION => FALSE,
CURL_AUTOREFERER => FALSE,
CURL_CONECTTIMEOUT => 5,
CURL_TIMEOUT => 5,
CURL_VERBOSE => TRUE,);
$bot->init();
?>
Se tiver algum problema ai basta usar:
$bot->optrequest = array(
CURLOPT_URL => 'http://www.google.com.br/search?hl=pt-BR&safe=off&gbv=2&sout=1&biw=1024&bih=548&tbm=isch&sa=1&q='.$tag.'',
CURLOPT_RETURNTRANSFER => TRUE,
CURLOPT_HEADER => FALSE
);
A primeira parte está pronta, agora você precisa do cérebro que está no nosso multicanal lá no tntabordo citado acima.
Apenas vamos atender repostas se perguntadas do nosso multicanal, iremos responder e ajudar no que for preciso
Robó?
Mim retornou?
=s
Pronto tinha uma coisa ali em tag, é que estava assim $tag; então o google tava procurando por isso $tag, agora já mudamos para '.$tag.', e outra coisa é quer estava cortando quando nos escrevemos ++ no incremento de $i lá no nosso multicanal
Sinistro... Parece google translator. oO
[]'s
Legal... só q agora num aparece nada.. atela fica em branco =(
>
Legal... só q agora num aparece nada.. atela fica em branco =(
Mas você nem voltou lá no nosso multicanal para pegar as mudanças, faz tudo de novo tinha outra coisa também, basta pegar tudo lá, tava apagado os ++ de uma expressão regular ai a tela fica branca
Posta ai como você fez e se você voltou lá no tntabordo.com no nosso multicanal para pegar tudo com as mudanças
Okay.. ta assim o meu.
teste.php
<? require('bot.class');
$tag='fotos'; // Poderia ser $tag=strip_tags($_GET['tag']);
$bot = new wwwebbot();
$bot->optrequest = array(
CURLOPT_URL => 'http://www.google.com.br/search?hl=pt-BR&safe=off&gbv=2&sout=1&biw=1024&bih=548&tbm=isch&sa=1&q='.$tag.'',
CURLOPT_RETURNTRANSFER => TRUE,
CURLOPT_HEADER => FALSE
);
$bot->init();
?>
bot.class
<?
class wwwebbot{
//-start()->
public $getcontent = ''; //this->
public $codeout = ''; //this->
public $output = ''; //this->
public $msgout = ''; //this->
public $optrequest = array();
public $multicontent = ''; //this->
public $content = ''; //this->
public $errcode = ''; //this->
public $errmsg = ''; //this->
//<-end();
public function init(){
$initcurl = curl_init();
if(!function_exists('curl_setopt_array')){
function curl_setopt_array(&$init,$options){
foreach ($options as $option => $value) {
curl_setopt($init, $option, $value);
}
return true;
}
}
curl_setopt_array($initcurl,$this->optrequest);
$this->getcontent=curl_exec($initcurl);
$this->multicontent=curl_multi_getcontent($initcurl);
$this->codeout=curl_errno($initcurl);
$this->msgout=curl_error($initcurl);
$this->output=curl_getinfo($initcurl);
curl_close($initcurl);
}
}
?>>
Okay.. ta assim o meu.
Cadê o principal que é a expressão regular volta lá e pega tudo, coloca nesta teste.php deixa só a classe separado
Ops.. pode cré brother..rss
teste.php
<? require('bot.class');
$tag='fotos'; // Poderia ser $tag=strip_tags($_GET['tag']);
$bot = new wwwebbot();
$bot->optrequest = array(
CURLOPT_URL => 'http://www.google.com.br/search?hl=pt-BR&safe=off&gbv=2&sout=1&biw=1024&bih=548&tbm=isch&sa=1&q='.$tag.'',
CURLOPT_RETURNTRANSFER => TRUE,
CURLOPT_HEADER => FALSE
);
$bot->init();
$url = preg_match_all('/src="http:\/\/t3.gstatic.com\/images\?([^"]++)"/i',$bot->multicontent,$goo);echo '<img src="http://t3.gstatic.com/images?'. $goo[1][$i] .'"> <P>';
endfor;
?>
Agora funfou ... valew.. da hora
aqui fica branco, pode pstar a classe, nao quero me registrar ;s
Testei seu código e deu erro
Warning: curl_setopt_array() [function.curl-setopt-array]: Array keys must be CURLOPT constants or equivalent integer values in /home/site/public_html/pasta/bot.class on line 27