minispider.py da IBM

1. minispider.py da IBM

adelson conceicao inacio
niodio

(usa Fedora)

Enviado em 08/07/2011 - 10:36h

Pessoal, peguei o seguinte codigo no site da IBM só para testar mesmo mas apareceu um erro, sera que alguem sabe o que devo fazer para funcionar isso.

==================================================================================

#!/usr/local/bin/python

import httplib
import sys
import re
from HTMLParser import HTMLParser


class miniHTMLParser( HTMLParser ):

viewedQueue = []
instQueue = []

def get_next_link( self ):
if self.instQueue == []:
return ''
else:
return self.instQueue.pop(0)


def gethtmlfile( self, site, page ):
try:
httpconn = httplib.HTTPConnection(site)
httpconn.request("GET", page)
resp = httpconn.getresponse()
resppage = resp.read()
except:
resppage = ""

return resppage


def handle_starttag( self, tag, attrs ):
if tag == 'a':
newstr = str(attrs[0][1])
if re.search('http', newstr) == None:
if re.search('mailto', newstr) == None:
if re.search('htm', newstr) != None:
if (newstr in self.viewedQueue) == False:
print " adding", newstr
self.instQueue.append( newstr )
self.viewedQueue.append( newstr )
else:
print " ignoring", newstr
else:
print " ignoring", newstr
else:
print " ignoring", newstr


def main():

if sys.argv[1] == '':
print "usage is ./minispider.py site link"
sys.exit(2)

mySpider = miniHTMLParser()

link = sys.argv[2]

while link != '':

print "\nChecking link ", link

# Obter o arquivo do site e vincular
retfile = mySpider.gethtmlfile( sys.argv[1], link )

# Alimentar o arquivo no analisador HTML
mySpider.feed(retfile)

# Procurar pelo retfile aqui

# Obter o próximo link no pedido de nível transversal
link = mySpider.get_next_link()

mySpider.close()

print "\ndone\n"

if __name__ == "__main__":
main()

============================================================================================

para exetutar estou fazendo da seguinte forma...


$ python minispider.py www.google.com

e aparece o seguinte ....

$ python minispider.py http://www.google.com
File "minispider.py", line 73
SyntaxError: Non-ASCII character '\xc3' in file minispider.py on line 73, but no encoding declared; see http://www.python.org/peps/pep-0263.html for details


o que devo fazer pra faze-lo rodar???



  


2. Re: minispider.py da IBM

fabricio erdmann
fabricio.er

(usa Debian)

Enviado em 08/07/2011 - 11:24h

python não tem suporte automático para acentuação no código(se a entrada tiver acentuação ele funciona nomalmente) então ative o suporte colocando "#coding: utf-8" na segunda linha







Patrocínio

Site hospedado pelo provedor RedeHost.
Linux banner

Destaques

Artigos

Dicas

Tópicos

Top 10 do mês

Scripts