Suchmaschinen -Algorithmen verwenden häufig die Informationen aus Web-Seiten nehmen und ordnen Sie sie nach Beliebtheit. Diese Algorithmen werden oft als " Spinnen. " Eine Python- Programmierer kann eine Menge über Multithread-Programmierung , Regular Expression Pattern Matching und Web Datenabruf durch die Schaffung einer Spinne zu lernen. Sie können ein Python -Skript Spinne mit wenig mehr als den mitgelieferten Python-Bibliotheken und Dolmetscher starten. Things You 
 Python-Interpreter 
 brauchen anzeigen Weitere Anweisungen 
 1 
 Definieren Sie zwei reguläre Ausdrücke, um E-Mail -Adressen und Hyperlinks in den Code der Webseite übereinstimmen : 
 
 Import urllibimport threadingimport re 
 
 r = re.compile ( ' (? <= href \\ = \\ " mailto :) . * ? @ . * ? . [\\ w] { 0,3 } (? = \\ " ) ') # Mailsr1 = re.compile ( ' (? <= href \\ = \\" ) . * ? (? = \\ " ) ') # links 
 2 
 Definieren Sie eine Klasse Konstruktor, der eine Web -URL als Argument . Der Konstruktor wird die URL als Ausgangspunkt zu nehmen, dann beginnen die "Spider" -Klasse als separaten Thread : 
 
 Klasse Spider ( threading.Thread ) : def __ init__ (self, Anschrift): self.url = addressthreading.Thread.__init__ (Selbst-) 
 3 
 Definieren Sie die "run" -Methode, die , wann immer ein neuer Thread vom Typ " Spider" beginnt ausführt . Diese Methode verarbeitet die Web -Seite mit " urllib.urlopen " , zieht E-Mails aus dem Code mit dem "r" für reguläre Ausdrücke und speichert sie in einer Log-Datei . Es dauert dann die Hyperlinks und lädt die Informationen aus dieser URL , beginnend einen neuen Thread , um diese Web -Seite zu verarbeiten: 
 
 def run ( self): 
 
 source = urllib.urlopen ( self.url . ) read () = r.findall Mails (Quelle) Mails = list ( set ( Mails) ) log = open (' log.txt ', ' a') for i in Mails : Wenn re.match ("^ [ ,"! _.0 -9a- z- ] + @ ( . [ 0-9a -z ] [0 -9a- z- ] + ) + [az] { 2,4 } $ " , i) = None : Wenn (i + '\\ n') nicht in ( open (' log.txt ', ' r') readlines ().) : print ' Gespeichert :', ilog.write (i + '\\ n') count + = 1log.close () urls = r1.findall (Quelle) für url in urls : . Crawl ( url ) start () 
 4 
 Führen Sie die Spinne Klasse durch den Aufruf eines neuen Thread vom Typ " Spider" und Zuführen es mit einem URL: 
 
 Spider ( ' www.google.com ') start () 
 
 .