Jump to content

Archived

This topic is now archived and is closed to further replies.

Orides Tomkiel Zmovirzynsk

Função " Você quis dizer: " do Google

Recommended Posts

Vou deixar aqui duas funções que fazem a mesma coisa, pegam o conteúdo da página do Google quando a pessoa escreve alguma palavra errada e ele sugere a correta, não muito indicado para quem faz pesquisa em banco de dados, pois mesmo se a pessoa escreveu errado, após informar a correta ainda a palavra pode não estar cadastrada em sua base de dados, bom ai vão as funções:

 

// esta primeira usa curl, pois sei que em alguns hosts a funcao file_get_contents é bloqueada
		function voce_quis_dizer($q){
	$q = urlencode($q);
	$content = "http://www.google.com/search?hl=pt-BR&q=".$q."";
	$ch = curl_init();
	curl_setopt ($ch, CURLOPT_URL, $content);
	curl_setopt ($ch, CURLOPT_HEADER, 0);
	ob_start();
	curl_exec ($ch);
	curl_close ($ch);
	
	$content = ob_get_contents();
	ob_end_clean();
	
	if (@preg_match("/voc.\squis\sdizer:\s.+?class=['\"]?p[\"']?>(.+?)<\/a>/i", $content, $palavra)) {
	  echo "Você quis dizer: ".$palavra[1];
	}
}
// para usar basta passar a palavra pesquisada:
echo voce_quis_dizer("contedo");

// esta outra faz a mesma coisa mas com file_get_contents

function voce_quis_dizer($q){
	$q = urlencode($q);
	$content = file_get_contents("http://www.google.com/search?hl=pt-BR&q=".$q."");
	if (@preg_match("/voc.\squis\sdizer:\s.+?class=['\"]?p[\"']?>(.+?)<\/a>/i", $content, $palavra)) {
	  echo "Você quis dizer: ".$palavra[1];
	}
}
// para usar basta passar a palavra pesquisada:
echo voce_quis_dizer("contedo");

Ainda tem mais maneiras que não passei aqui, mas acho que estas ja quebram o galho

 

Att,

 

Orides.

Share this post


Link to post
Share on other sites

Ow, se me permite, eu dei uma simplificada na versão file_get_contents() da sua função:

 

function voce_quis_dizer(){
	$content = file_get_contents("http://www.google.com/search?hl=pt-BR&q=".urlencode(func_get_arg(0))."");
	return (@preg_match("/voc.\squis\sdizer:\s.+?class=['\"]?p[\"']?>(.+?)<\/a>/i", $content, $palavra)) ? strip_tags($palavra[1]) : false;
}

Share this post


Link to post
Share on other sites

Tem que cuidar pro google não ter que fazer um upgrade no seu plano de revenda da Locaweb, com essa função aí vamos acabar com a banda do Google :/

 

Desculpa mas não resisti... AUEOIAEUAOIEUEIOUE

 

Essa função retorna os dados conforme o google retorna, isso quer dizer que se um dia o google mudar sua forma com que ele resgata os dados ou manipula essas informações que pegamos, o sistema vai bugar! :D

Seria legal se fizéssemos isso 'na unha' e fizessemos um sistema de 'Você quis dizer", mas pra isso acho que precisa ter um banco de dados de palavras gigante e tudo mais...

 

Abraço e desculpa a piadinha.

Share this post


Link to post
Share on other sites

Na verdade tinha uma pergunta indireta, se isso realmente pode ser feito, algo como o google permite o uso dessa ferramenta como 'webservice', tal qual um webservice de cep, posso esta confundindo a natureza, mas parece o mesmo caso.

Share this post


Link to post
Share on other sites

Na verdade tinha uma pergunta indireta, se isso realmente pode ser feito, algo como o google permite o uso dessa ferramenta como 'webservice', tal qual um webservice de cep, posso esta confundindo a natureza, mas parece o mesmo caso.

Conhece a expressão "tá na net é do mundo"?

 

Pois então: Tudo que 'acontece' na web, e não precisa de login/senha (ou seja, é 'pessoal') pode ser copiado/plagiado/imitado... Isso que o pessoal fez, outras centenas de sites fazem com outros tipos de funcionalidade.. Como cálculo de frete (site dos correios)... Valor atual da compra/venda do dólar (site do banco do brasil e/ou banco central) dentre outros..

 

Isso não é ilegal, por que qualquer usuario por ir lá e ficar fazendo 500 requisições por dia, e eles nunca vão bloquear o usuário QUANTO MAIS ficar com a banda estourada...

 

Se um dia o Google estourar a banda mensal, o mundo não é mais mundo e a internet não é mais internet.

Share this post


Link to post
Share on other sites

Pelo bom senso não estou cogitando a possibilidade de estourar a banda do google, mas poderia ser de outro site menor, tanto é que muitos bloqueiam o consumo de banda de imagens por exemplo. Enfim, só queria saber se o google permite que utilizem isso e que de certa forma teria a ver com o processamento que não seria para o site dele(google).

Share this post


Link to post
Share on other sites

ESJovem,

esse é um tópico antigo de 2008.

 

pode ser que alguma regra tenha sido alterada conforme comentário do Guilherme no post 5.

 

a lógica é simples.

 

utilize wrappers (curl por exemplo) para fazer leitura da consulta retornada pelo mecanismo de pesquisa, neste caso, o google

 

após obter o resultado utilize funções para manipulação de strings para analisar e separar o que realmente interessa.

Share this post


Link to post
Share on other sites

×

Important Information

Ao usar o fórum, você concorda com nossos Terms of Use.