“Conocimiento Programación>Python Programming

La programación de una araña de correo electrónico en Python

2015/5/26
Los motores de búsqueda suelen utilizar algoritmos que toman información de las páginas web y los clasifican de acuerdo a la popularidad. Estos algoritmos son a menudo llamados "arañas ". Un programador Python puede aprender mucho acerca de la programación multihilo , expresiones regulares coincidencia de patrones y datos de la Web ir a buscar la creación de una araña. Puede iniciar una secuencia de comandos Python araña con poco más que las bibliotecas y el intérprete de Python incluidos. Cosas que necesitará
Python intérprete
Mostrar más instrucciones
1

Definir dos expresiones regulares para hacer coincidir las direcciones de correo electrónico e hipervínculos en el código de la página Web:

importación urllibimport threadingimport re

r = re.compile ( ' ( ? < href = \\ = \\ " mailto :) . * ? @ . * ? . [ \\ w ] {0,3 } ( ? = \\ ") ') # Mailsr1 = re.compile ( ' ( ? < href = \\ = \\ ") . * ? ( ? = \\ ") ') # Links
2

Definir un constructor de la clase que tiene una página web URL como argumento. El constructor tomará la URL como punto de partida , a continuación, comenzar la clase "Spider ", como un hilo separado :
clase

Spider ( threading.Thread ) : def __ init__ (self, dirección): self.url = addressthreading.Thread.__init__ (auto )
3

Definir el método "run" , que se ejecuta cada vez que se inicia un nuevo hilo de tipo " araña " . Este método procesa la página web con " urllib.urlopen " , tira de correos electrónicos de un código mediante el uso de la "r " de expresiones regulares y los almacena en un archivo de registro . A continuación, toma los hipervínculos y las descargas de la información de esa URL , comenzando un nuevo thread para procesar la página Web:

def run ( self):
fuente

= urllib.urlopen ( self.url . ) read ( ) = mails (fuente ) mails r.findall = list ( set ( mails ) ) log = open (' log.txt ', ' a') for i in mails: si re.match ( "^ [ ,"! _.0 - 9a - z ] + @ ( . [ 0 - 9a - z] [ 0 - 9a - z ] + ) + [ az ] { 2,4 } $ ", i) = None: si ( i + '\\ n' ) no ( abiertas ( ' log.txt ', ' r') readlines (). ): print ' Guardado :', ilog.write ( i + '\\ n' ) cuenta + = 1log.close () urls = r1.findall (fuente ) de uRL en uRL : . Crawl ( url ) start ()
4

Ejecutar la clase araña llamando a un nuevo hilo de tipo " araña " y el suministro de con una URL :

Spider ( " www.google.com " ) start ()

.

Python Programming
Cómo recorrer una lista de archivos en Python
Cómo crear Retardo en Python
Cómo introducir un comando de un número en Python
¿Cómo se usa el método de programación de Python en una computadora?
Cómo cambiar el color en un Python Boxplot
Cómo medir el tiempo en Python
Cómo escuchar para paquetes de Python
Cómo ver errores en Python
Conocimiento de la computadora © http://www.ordenador.online