Ir para conteúdo
Fórum Script Brasil
  • 0

Problema para obter resultado de pesquisa Google via urllib


Rafael Alencar

Pergunta

Olá pessoal!

Para aprender mais sobre a biblioteca urllib do Python, fiz um programa que acessa o site climatempo.com.br e obtém a previsão do tempo para minha cidade através de sua URL: http://www.climatempo.com.br/previsao/cidade/106.

Agora estou tentando melhorar o programa, para que o usuário digite o nome da cidade e seja retornada a previsão do tempo da mesma. Como não há uma forma simples de se obter o código das cidades no site Climatempo, resolvi fazer o programa realizar uma pesquisa no google pelo termo climatempo+previsao+do+tempo+para+nomeDaCidade e por meio de uma expressão regular obter o código.

O problema é que ao fazer a requisição abaixo ao Google, é retornada a seguinte página de erro:

import urllib

f = urllib.urlopen('http://www.google.com.br/search?q=climatempo+barbacena')

print f.read()

f.close()

<html><head><meta http-equiv="content-type" content="text/html;charset=utf-8"><title>403 Forbidden</title><style><!--body {font-family: arial,sans-serif}div.nav {margin-top: 1ex}div.nav A {font-size: 10pt; font-family: arial,sans-serif}span.nav {font-size: 10pt; font-family: arial,sans-serif; font-weight: bold}div.nav A,span.big {font-size: 12pt; color: #0000cc}div.nav A {font-size: 10pt; color: black}A.l:link {color: #6f6f6f}A.u:link {color: green}//--></style><script><!--var rc=403;//--></script></head><body text=#000000 bgcolor=#ffffff><table border=0 cellpadding=2 cellspacing=0 width=100%><tr><td rowspan=3 width=1% nowrap><b><font face=times color=#0039b6 size=10>G</font><font face=times color=#c41200 size=10>o</font><font face=times color=#f3c518 size=10>o</font><font face=times color=#0039b6 size=10>g</font><font face=times color=#30a72f size=10>l</font><font face=times color=#c41200 size=10>e</font>&nbsp;&nbsp;</b><td>&nbsp;</td></tr><tr><td bgcolor="#3366cc"><font face=arial,sans-serif color="#ffffff"><b>Error</b></td></tr><tr><td>&nbsp;</td></tr></table><blockquote><H1>Forbidden</H1>Your client does not have permission to get URL <code>/search?q=climatempo+barbacena</code> from this server. (Client IP address: 201.62.209.253)<br><br>

Please see Google's Terms of Service posted at http://www.google.com/terms_of_service.html

<BR><BR><P>If you believe that you have received this response in error, please <A HREF="http://www.google.com/support/bin/request.py?contact_type=user&hl=en">report</A> your problem. However, please make sure to take a look at our Terms of Service (http://www.google.com/terms_of_service.html). In your email, please send us the <b>entire</b> code displayed below. Please also send us any information you may know about how you are performing your Google searches-- for example, "I'm using the Opera browser on Linux to do searches from home. My Internet access is through a dial-up account I have with the FooCorp ISP." or "I'm using the Konqueror browser on Linux to search from my job at myFoo.com. My machine's IP address is 10.20.30.40, but all of myFoo's web traffic goes through some kind of proxy server whose IP address is 10.11.12.13." (If you don't know any information like this, that's OK. But this kind of information can help us track down problems, so please tell us what you can.)</P><P>We will use all this information to diagnose the problem, and we'll hopefully have you back up and searching with Google again quickly!</P>

<P>Please note that although we read all the email we receive, we are not always able to send a personal response to each and every email. So don't despair if you don't hear back from us!</P>

<P>Also note that if you do not send us the <b>entire</b> code below, <i>we will not be able to help you</i>.</P><P>Best wishes,<BR>The Google Team</BR></P><BLOCKQUOTE>/+/+/+/+/+/+/+/+/+/+/+/+/+/+/+/+/+/+/+/+/+/+/+/+/<BR>

CUMRRGk8ca2lcEsmbzivtCVkNAqLvI34-BVJjqD5xedrXfQTv<BR>

tol0EZFB-jhMSU-XCCn2mZn7sQYo7WtAGIbcVTsj7H3uWatFa<BR>

4O9Zuxs7I-nXqjy9QmgvFfOXRNkaORCZxkSEoX1xDBq0VGdkk<BR>

CfwlUdG9JqprYBPnpRyhjxjC3c4n68AuEYG3pDJFTKt_ZLQ5W<BR>

-g1l0Gw-e1SBitpdXqF_utTxvWQA3VYm2JYNsPq2ptjQ6LDnG<BR>

Ti0cbXXBYPw4_QH3GNukw4C7-YZ9tmqirGIRGgpQAQyVLMFzt<BR>

BCenS-uGRjouesAtf3igrtiuaVspf7kqanKGwjtpbd1rlG3pe<BR>

LlZyKbi7ANJ8mrh9WgU8xNXFRflRuidEZ-haknb3XFCz6zYCg<BR>

CIW3lEtKxukUwFa6tFd0E7qz0TRsP889Cqe06SbL-MuvT0R1u<BR>

7tK8_J4QiHy3shLEIltmgW9r2gCj8Fuw1x9sVQWoB3Fq_3ajd<BR>

txbaecNUwf-5tilZA62dWCsg_zCEayXsnJ3DxqqlByC5ptdLY<BR>

8Uk89u0_xmXeQqI9TQrQpV3mug0gTyXDKQmOQ-3qeaFlz4imb<BR>

UAou<BR>

+/+/+/+/+/+/+/+/+/+/+/+/+/+/+/+/+/+/+/+/+/+/+/+/+<BR></BLOCKQUOTE>

<p></blockquote><table width=100% cellpadding=0 cellspacing=0><tr><td bgcolor="#3366cc"><img alt="" width=1 height=4></td></tr></table></body></html>

O mesmo problema não ocorre com o site do Yahoo,

import urllib

f = urllib.urlopen("http://cade.search.yahoo.com/search?p=climatempo+previsao+do+tempo+para+")

print f.read()

f.close()

mas o mesmo não retorna pesquisas tão precisas quantoas do Google.

Ficarei agradecido se alguém puder me dar alguma idéia.

Obrigado,

Rafael Alencar.

Link para o comentário
Compartilhar em outros sites

1 resposta a esta questão

Posts Recomendados

  • 0

Consegui resolver o problema.

O sistema de busca do Google não aceita o valor informado no campo User-Agent do cabeçalho HTTP da requisição. Por padrão, o valor User-Agent enviado é Python-urllib/versão, onde versão corresponde ao número da versão do módulo urllib.

Neste artigo eu demonstro como alterar o campo User-Agent:

http://www.vivaolinux.com.br/artigo/Python...lares/?pagina=7

Até!

Link para o comentário
Compartilhar em outros sites

Participe da discussão

Você pode postar agora e se registrar depois. Se você já tem uma conta, acesse agora para postar com sua conta.

Visitante
Responder esta pergunta...

×   Você colou conteúdo com formatação.   Remover formatação

  Apenas 75 emoticons são permitidos.

×   Seu link foi incorporado automaticamente.   Exibir como um link em vez disso

×   Seu conteúdo anterior foi restaurado.   Limpar Editor

×   Você não pode colar imagens diretamente. Carregar ou inserir imagens do URL.



  • Estatísticas dos Fóruns

    • Tópicos
      152,3k
    • Posts
      652,3k
×
×
  • Criar Novo...