motores de busca, muitas vezes usam algoritmos que levam informações de páginas da Web e classificá-las de acordo com a popularidade. Esses algoritmos são freqüentemente chamados de "aranhas ". Um programador Python pode aprender muito sobre a programação multithreaded , padrão de expressão regular compatível e dados Web Buscar através da criação de uma aranha. Você pode começar um script Python aranha com pouco mais do que as bibliotecas Python incluídas e intérprete. Coisas que você precisa
interpretador Python
Mostrar Mais instruções
1
Definir duas expressões regulares para corresponder os endereços de e-mail e hiperlinks no código da página da Web :
importação
urllibimport threadingimport re
r = re.compile ('( ? < = href \\ = \\ " mailto :) . * ? @ . * ? . [ \\ w ] { 0,3 } ( ? = \\ " ) ') # Mailsr1 = re.compile (' ( ? < = href \\ = \\"). * ? ( ? = \\ " ) ') # links
2
Definir um construtor de classe que leva um URL da página web como seu argumento. O construtor terá a URL como um ponto de partida, em seguida, começar a aula "Spider ", como um segmento separado :
Aranha classe ( threading.Thread ) : def __ init__ (self, endereço): self.url = addressthreading.Thread.__init__ (self ),
3
Defina o método "run", que é executado sempre que um novo segmento do tipo " aranha ", começa . Este método processa a página da Web com " urllib.urlopen " , puxa -mails a partir do código , usando o "r" expressão regular e os armazena em um arquivo de log . Em seguida, leva os hiperlinks e transfere a informação de que a URL , iniciando um novo segmento para processar a página Web:
def execute (self):
source = urllib.urlopen ( self.url . ) read () = mails r.findall ( fonte ) mails = list ( set ( mails ) ) log = open (' log.txt ', ' a') for i in mails: se re.match ( "^ [ ,"_.0 -9a -z- ] + @ ( [0 -9a- z] [0 -9a -z- ] +. ) + [az] {2,4 } $ ", i) = None : se (i + '\\ n' ), não em ( open (' log.txt ', ' r') readlines (). ) : print ' Saved :', ilog.write (i + '\\ n' ) contam + = 1log.close () urls = r1.findall ( fonte ) para url urls em : . Crawl (url) start ()
4
Execute a classe Aranha chamando um novo segmento do tipo " aranha " e fornecendo lo com um URL: .
Spider ( ' www.google.com ') start ()