01 julho 2007

Meu primeiro programa em Python

Ontem criei minha primeira aplicação em Python. Primeiramente, para dar sorte, fiz um aplicativo "hello world". Para isso, basta criar um arquivo, por exemplo, primeiro.py, e digitar a linha abaixo:

print "Hello World"


Só isso. 19 bytes!! (conte, são 19 caracteres!). Para complicar mais um pouco, fui ao segundo.py (39 bytes!):

t = raw_input()
print "Hello World,", t


Bem, mas não foi nenhuma dessas a aplicação a que me referi na primeira frase desse post.. A primeira aplicação, que se pode chamar de aplicação, e que posso dizer que me fez entender a linguagem (na tentativa e erro, é verdade), foi um pouco mais complexa. Não tem interface gráfica, mas pelo menos acessa a web.
É uma pequena e simples aplicação que acessa uma URL qualquer, faz o parser do HTML e busca um lista de links nessa página. A aplicação ainda está inacabada, pois tive uns problemas usando o módulo HTMLParser com páginas que contém script (no caso, a primeira página que acessei deu esse erro). Minha aplicação exemplo está abaixo. Ainda não está pronta, e a minha idéia é que ele navegue na web, escolhendo entre esses links, qual será o próximo destino. Mas para isso, terei que criar uma certa inteligência, para que ele não fique indo e vindo para o mesmo lugar, e não fique sem saber pra onde ir quando encontrar um link "quebrado" ou um ponto que não seja HTML. Mas essa discussão fica pra depois.

from urllib2 import urlopen, localhost
import HTMLParser as html
print "Localhost: "+localhost()

ret = urlopen("http://brunogrossi.com.br/")
print ret.geturl()
print ret.code
print ret.msg
print ret.info()

class MyParser (html.HTMLParser):
def handle_starttag(self, tag, attrs):
if (tag=="a" or tag=="link"):
print tag, attrs

parser = MyParser()
parser.feed(ret.read())