Ir para conteúdo

Arquivado

Este tópico foi arquivado e está fechado para novas respostas.

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.

Compartilhar este post


Link para o post
Compartilhar em outros 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;
}

Compartilhar este post


Link para o post
Compartilhar em outros 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.

Compartilhar este post


Link para o post
Compartilhar em outros 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.

Compartilhar este post


Link para o post
Compartilhar em outros 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.

Compartilhar este post


Link para o post
Compartilhar em outros 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).

Compartilhar este post


Link para o post
Compartilhar em outros 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.

Compartilhar este post


Link para o post
Compartilhar em outros sites

×

Informação importante

Ao usar o fórum, você concorda com nossos Termos e condições.