Vitajte na [www.pocitac.win] Pripojiť k domovskej stránke Obľúbené stránky
Definujte dva regulárne výrazy tak , aby zodpovedala e - mailovej adresy a hypertextové odkazy v kóde na webovej stránke :
import urllibimport threadingimport re
r = re.compile ( " ( ? < = href \\ = \\ " mailto :) . * ? @ . * ? . [ \\ w ] { 0,3 } ( ? = \\ " ) " ) # Mailsr1 = re.compile ( " ( ? < = href \\ = \\ " ) . * ? ( ? = \\ " ) " ) # Odkazy
2
Definovať triedy konštruktor , ktorý trvá webové stránky URL , ako svoj argument . Konštruktor bude mať URL ako východiskový bod , potom začne " pavúk " triedu ako samostatné vlákno :
trieda Spider ( threading.Thread ) : def __ init__ ( self , adresa ) : self.url = addressthreading.Thread.__init__ ( self )
3
Definujte metódu " run " , ktorý vykonáva vždy , keď nové vlákno typu " pavúk " začína . Táto metóda spracováva webové stránky s " urllib.urlopen " , tiahne e - maily z kódu pomocou "r " regulárny výraz a uloží ich do súboru denníka . To potom vezme hypertextové odkazy a stiahne informácie z tejto adresy URL , začína nové vlákno , aby proces , ktorý webovú stránku :
def beh ( ja ) :
source = urllib.urlopen ( self.url ) . read ( ) maily = r.findall ( zdroj ) maily = list ( set ( maily ) ) log = open ( " log.txt " , " " ) for i in maily : ak re.match ( " ^ [ ,"_.0 - 9a - z - ] + @ ( [ 0 - 9a - z ] [ 0 - 9a - z - ] + ) . + [ az ] { 2,4 } $ " , i ) = None : ak ( i + ' \\ n' ) nie je ( open ( " log.txt " , "r " ) readlines ( ) . ) : print " Zverejnené: " ilog.write ( i + ' \\ n' ) pocet + = 1log.close ( ) url = r1.findall ( zdroj ) na adresu URL v URL : . Crawl ( url ) štart ( )
4
spustite triedu Spider volaním nové vlákno typu " Spider " a dodáva to s URL : .
Spider ( " www.google.com " ) štart ( )