• Revista PROGRAMAR: Já está disponível a edição #53 da revista programar. Faz já o download aqui!

a13293

Python & HTTP

28 mensagens neste tópico

oi!!!

vou ter que fazer um projecto em python!!!é nao sei nada so agora estou a ver como isto funciona!!!!!!!

vou ter quer fazer um programa que permita "falar " com o google!!era do tipo mandar uma frase para o google fazer  uma pesquisa e depois receber a  resposta!!!

sera que alguem me pode ajudar!! é que eu estou mt verde em python  :thumbsup:

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

como é que vais comunicar com o google?

enviando pedidos manualmente atravez do GET e parsando o HTML? usando o CURL? ou a API do GOOGLE?

Se usares esta última aviso desde já que o pior nem é o python, pior vai ser familiarizares.te com XML RPC

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

#coded by triton

import urllib2

search_url = "http://www.google.com/search?hl=en&q=%s&btnG=Google+Search"

search_keyword = raw_input("What would you like to search? ")
search_url = search_url % (search_keyword)

page = urllib2.urlopen(search_url)

print page.read()

#usando o pyGoogle
#http://pygoogle.sourceforge.net/
#mais informacoes: http://aspn.activestate.com/ASPN/WebServices/Google

import google

#Obtain a license key from Google at http://www.google.com/apis/index.html
google.setLicense('xxxxxxxxxxxx')

search_keyword = raw_input("What would you like to search? ")

data = google.doGoogleSearch(search_keyword)

i = 1
for result in data.results:
      print "Result", i, "of", len(data.results)
      print "  URL: ", result.URL
      print "             Title: ", result.title
      i = i + 1

Não testei nenhum código, por isso estás à vontade para o alterar. :thumbsup:

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

#coded by triton

import urllib2

search_url = "http://www.google.com/search?hl=en&q=%s&btnG=Google+Search"
search_keyword = raw_input("What would you like to search? ")
search_url = search_url % (search_keyword)

page = urllib2.urlopen(search_url)

print page.read()

:thumbsup: Rápido eficaz e sem porque, quando tiver acesso ao Pyhon vou ver se funciona.

Só não percebi uma linha (mas isso deve-se dever à minha noobice no Python):

search_url = search_url % (search_keyword)

Ainda não percebi muito bem para que é que serve o % (search_keyword)

Eu sei que já usei uma coisa assim do género, mas foi num print em que o python não me estava a deixar misturar strings com integers, então fiz print "blablabla %s blablabla" % (váriavel_a_dar_problemas)

É para isso?

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

epa... n percebo mesmo nada de python... o que é que faz o operador '%'???

é que o primeiro exemplo n me parece que está bem

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

bar = 1
foo = '%i. %s loves Python!' % (bar, 'triton')
print foo

Output: 1. triton loves Python!

é que o primeiro exemplo n me parece que está bem

Pode ter algum erro, não testei.

Já agora, tentem com outras bibliotecas para o mesmo efeito: comparação.

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

bar = 1
foo = '%i. %s loves Python!' % (bar, 'triton')
print foo

Output: 1. triton loves Python!

é que o primeiro exemplo n me parece que está bem

Pode ter algum erro, não testei.

Já agora, tentem com outras bibliotecas para o mesmo efeito: comparação.

mmmm a sintax do printf do C... iaux... agora percebo porque dizem que o php é pragmático. Porra p esta sintaxe.

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

Realmente consegue-se facilitar bastante as coisas com Python....

Cumps

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

Achas difícil? :thumbsup:

Pa nao, mas mesmo assim acho que não chega ao nivel de simplificação do php.

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

Achas difícil? :D

Pa nao, mas mesmo assim acho que não chega ao nivel de simplificação do php.

Tu é que sabes... deves ser o único a pensar assim. :thumbsup:

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

Triton, já agora, quando vou a ver o programa ele dá-me este erro:

rolando@rolando:~/Desktop$ python teste.py

What would you like to search? something

Traceback (most recent call last):

  File "teste.py", line 10, in ?

    page = urllib2.urlopen(search_url)

  File "/usr/lib/python2.4/urllib2.py", line 130, in urlopen

    return _opener.open(url, data)

  File "/usr/lib/python2.4/urllib2.py", line 364, in open

    response = meth(req, response)

  File "/usr/lib/python2.4/urllib2.py", line 471, in http_response

    response = self.parent.error(

  File "/usr/lib/python2.4/urllib2.py", line 402, in error

    return self._call_chain(*args)

  File "/usr/lib/python2.4/urllib2.py", line 337, in _call_chain

    result = func(*args)

  File "/usr/lib/python2.4/urllib2.py", line 480, in http_error_default

    raise HTTPError(req.get_full_url(), code, msg, hdrs, fp)

urllib2.HTTPError: HTTP Error 403: Forbidden

Mas também deixa estar, se calhar falta-me o modulo do urlib2 :thumbsup:

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

"urlib2" é destribuido com o interpretador.

E se te faltasse esse modulo não passavas da segunde linha.

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

Pois a min tb me da esse erro!!!!! sera que alguem sabe pk?

Traceback (most recent call last):

  File "<pyshell#0>", line 1, in <module>

    import teste

  File "C:\Python25\teste.py", line 8, in <module>

    page = urllib2.urlopen(search_url)

  File "C:\Python25\lib\urllib2.py", line 121, in urlopen

    return _opener.open(url, data)

  File "C:\Python25\lib\urllib2.py", line 380, in open

    response = meth(req, response)

  File "C:\Python25\lib\urllib2.py", line 491, in http_response

    'http', request, response, code, msg, hdrs)

  File "C:\Python25\lib\urllib2.py", line 418, in error

    return self._call_chain(*args)

  File "C:\Python25\lib\urllib2.py", line 353, in _call_chain

    result = func(*args)

  File "C:\Python25\lib\urllib2.py", line 499, in http_error_default

    raise HTTPError(req.get_full_url(), code, msg, hdrs, fp)

HTTPError: HTTP Error 403: Forbidden

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

Eu não sei a razão do erro mas se em vez de importarmos "urllib2" importarmos "urllib" e fizermos os devidos acertos funciona na perfeição.

Código funcional

import urllib

search_url = "http://www.google.com/search?hl=en&q=%s&btnG=Google+Search"

search_keyword = raw_input("What would you like to search? ")
search_url = search_url % (search_keyword)

page = urllib.urlopen(search_url)

print page.read()

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

eu acho que já sei qual é o erro que o triton cometeu.

Vou ver se consigo corrigir :D

EDIT: afinal não deu da maneira que estava a pensar ;)

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

Ainda não tinha tido tempo de ver este assunto mas sabia quase de certeza que era problema do Google pois se virem o log aparece um erro 403.

Sendo assim a melhor solução é usar o pyGoogle de forma a não estaram a infringir os termos do Google. ;)

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

Então e o pyGoogle não faz pesquisas automáticas?

Cumps

Se reparares tens de te registar, o pyGoogle usa a API fornecida pelo Google. ;)

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

Então e o pyGoogle não faz pesquisas automáticas?

Cumps

Se reparares tens de te registar, o pyGoogle usa a API fornecidade pelo Google. ;)

Já estou esclarecido, não sabia como o pyGoogle fazia para não ser ilegal  :D

Cumps

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

pedrotuga!!!

olha por acaso nao tens nada que me possa arranjar sobre API do GOOGLE!!!

é que vou ter que ir por ai!!!

obrigado

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

Crie uma conta ou ligue-se para comentar

Só membros podem comentar

Criar nova conta

Registe para ter uma conta na nossa comunidade. É fácil!


Registar nova conta

Entra

Já tem conta? Inicie sessão aqui.


Entrar Agora