Dator
 |  Startsida |  Hårdvara |  Nätverk |  Programmering |  Programvara |  Felsökning |  System |   
Programmering
  • C /C + + -programmering
  • Computer Programspråk
  • Delphi Programmering
  • Java Programming
  • JavaScript programmering
  • PHP /MySQL Programmering
  • perl Programmering
  • python Programming
  • Ruby programmering
  • Visual Basics Programmering
  • * Dator Kunskap >> Programmering >> python Programming >> Content

    Hur man programmerar en E Spider i Python

    Sökmotorer ofta använder algoritmer som tar information från webbsidor och rangordna dem efter popularitet . Dessa algoritmer är ofta kallas " spindlar . " En Python programmerare kan lära dig mycket om flertrådade programmering , reguljära uttryck mönstermatchning och uppgifter Web Hämtar genom att skapa en spindel . Du kan starta en Python spindel manus med lite mer än de ingående Python bibliotek och tolk . Saker du behöver
    Pythontolk
    Visa fler instruktioner
    1

    Definiera två reguljära uttryck för att matcha e-postadresser och hyperlänkar i koden för webbsidan :

    import urllibimport threadingimport re

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

    Definiera en klass konstruktor som tar en webbadress webbsida som argument . Konstruktören tar webbadressen som utgångspunkt , sedan börja " Spider " klass som en separat tråd :

    klass Spider ( threading.Thread ) : def __ init__ ( jaget , adress ) : self.url = addressthreading.Thread.__init__ ( egen) Addera 3

    Definiera " run "-metoden , som exekverar när en ny tråd av typen " Spider " börjar . Denna metod behandlar webbsidan med " urllib.urlopen " , drar e-post från koden genom att använda " r " reguljära uttryck och lagrar dem i en loggfil . Det tar sedan hyperlänkar och laddar ned informationen från den adressen , starta en ny tråd för att behandla denna webbsida :

    def run (själv ) :

    source = urllib.urlopen ( self.url . ) läste ( ) postmeddelanden = r.findall ( källa ) postmeddelanden = lista ( set ( post ) ) log = open ( ' log.txt ' , ' a ' ) for i in post : om re.match ( " ^ [ ,"! _.0 - 9a - z - ] + @ ( . [ 0 - 9a - z ] [ 0 - 9a - z - ] + ) + [ az ] { 2,4 } $ " , i) = None : om (i + ' \\ n ' ) inte ( öppna ( ' log.txt ' , ' r ' ) readlines () . ) : print 'Sparad : ' , ilog.write (i + ' \\ n ' ) count + = 1log.close ( ) urls = r1.findall ( källa ) för i URL: er : . Crawl ( URL ) start ( )
    4

    Kör Spider klassen genom att ringa en ny tråd av typen " Spider " och leverera det med en URL :

    Spider ( ' www.google.com ' ) startar ( ) Addera
    .

    Tidigare:

    nästa:
    relaterade artiklar
    ·Python är inte matchar en sträng
    ·Python Tk Tutorial
    ·Hur du sorterar data i tabellform i Python
    ·Python Lista Manipulation
    ·Hur sortera flera listor i Python
    ·Hur man stega igenom Python Code
    ·Hur Hoppa kommentaren Lines i Python
    ·Hur man deklarerar en tvådimensionell lista i Python
    ·Hur man använder break i Python
    ·Hur Pausa en Python Script
    Utvalda artiklarna
    ·Hur skriver jag en variabel med en Perl CGI
    ·Java Binary Tree Tutorial
    ·Vad är egenskaper i VB.Net
    ·En introduktion till Python 3
    ·Hur man använder filter i Struts
    ·Hur man gör musen Listener Använda Swing i Java
    ·Debugging för en Åtkomstfel
    ·Hur man använder , från XSD
    ·Hur att bläddra nedåt i JavaScript
    ·Hur man skapar ett program som kommer att visa en kalen…
    Copyright © Dator Kunskap http://www.dator.xyz