Vitajte na [www.pocitac.win] Pripojiť k domovskej stránke Obľúbené stránky

Domáce Hardware Siete Programovanie Softvér Otázka Systémy

Ako naprogramovať Email Spider v Pythone

Vyhľadávače často používajú algoritmy , ktoré berú informácie z webových stránok a radí je podľa popularity . Tieto algoritmy sú často nazývané " pavúky . " Python programátor môže veľa naučiť o viacvláknové programovanie , regulárnymi výrazmi a webových načítanie dát tým , že vytvorí pavúka . Môžete spustiť Python pavúk skript s trochu viac ako zahrnutých knižníc Pythone a tlmočníka . Veci , ktoré budete potrebovať
Python interpret
Zobraziť ďalšie inštrukcie Cestuj 1

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 ( )

Najnovšie články

Copyright © počítačové znalosti Všetky práva vyhradené