Heim >Backend-Entwicklung >Python-Tutorial >Einführung in die grundlegende Schreibmethode der Python-Webcrawler-Funktion
In diesem Artikel wird hauptsächlich die grundlegende Schreibmethode der Python-Webcrawler-Funktion vorgestellt, nämlich Web Spider, ein sehr anschaulicher Name. Vergleicht man das Internet mit einem Spinnennetz, dann ist Spider eine Spinne, die im Netz herumkriecht. Freunde, die sich für Webcrawler interessieren, können sich auf diesen Artikel beziehen
Webcrawler, nämlich Web Spider, sind ein sehr lebendiger Name. Wenn man das Internet mit einem Spinnennetz vergleicht, dann ist eine Spinne eine Spinne, die im Netz herumkriecht.
1. Die Definition von Webcrawlern
Webspider suchen nach Webseiten über die Linkadressen von Webseiten. Lesen Sie ausgehend von einer bestimmten Seite der Website (normalerweise der Startseite) den Inhalt der Webseite, suchen Sie nach anderen Linkadressen auf der Webseite, suchen Sie dann über diese Linkadressen die nächste Webseite und fahren Sie mit fort eine Schleife bis alle Seiten dieser Website gecrawlt wurden. Betrachtet man das gesamte Internet als Website, dann können Webspider dieses Prinzip nutzen, um alle Webseiten im Internet zu crawlen. Auf diese Weise ist ein Webcrawler ein Crawler, ein Programm, das Webseiten crawlt. Die grundlegende Funktion eines Webcrawlers besteht darin, Webseiten zu crawlen.
2. Der Vorgang des Durchsuchens der Webseite
Der Vorgang des Crawlens der Webseite ist eigentlich derselbe, wie Leser die Webseite normalerweise mit dem IE-Browser . Sie geben beispielsweise die Adresse www.baidu.com in die Adresszeile des Browsers ein.
Der Vorgang des Öffnens einer Webseite besteht eigentlich darin, dass der Browser als browsender „Client“ eine Anfrage an den Server sendet, die serverseitigen Dateien lokal „abruft“ und sie dann interpretiert und anzeigt ihnen. HTML ist eine Auszeichnungssprache, die Tags verwendet, um Inhalte zu markieren und sie zu analysieren und zu unterscheiden. Die Funktion des Browsers besteht darin, den erhaltenen HTML-Code zu analysieren und dann den Originalcode in die Website-Seite umzuwandeln, die wir direkt sehen.3. Webcrawler-Funktion basierend auf Python
1). HTML-Seite mit Python abrufen
Eigentlich besteht die einfachste Website-Erfassung nur aus zwei Sätzen:import urllib2 content = urllib2.urlopen('http://XXXX').read()Auf diese Weise können Sie das gesamte HTML-Dokument erhalten. Das Hauptproblem ist, dass wir Möglicherweise müssen Sie damit beginnen, die nützlichen Informationen, die wir benötigen, in diesem Dokument zu finden, nicht im gesamten Dokument. Dies erfordert das Parsen von HTML, das mit verschiedenen Tags gefüllt ist.
2). Python-Crawler analysiert die HTML-Methode nach dem Crawlen der Seite
Python-Crawler-HTML-Parsing-Bibliothek SGMLParser
Python wird standardmäßig mit Parsern wie HTMLParser und SGMLParser geliefert. Ersteres ist wirklich schwierig zu verwenden, daher habe ich ein Beispielprogramm mit SGMLParser geschrieben:import urllib2 from sgmllib import SGMLParser class ListName(SGMLParser): def init(self): SGMLParser.init(self) self.is_h4 = "" self.name = [] def start_h4(self, attrs): self.is_h4 = 1 def end_h4(self): self.is_h4 = "" def handle_data(self, text): if self.is_h4 == 1: self.name.append(text) content = urllib2.urlopen('http://169it.com/xxx.htm').read() listname = ListName() listname.feed(content) for item in listname.name: print item.decode('gbk').encode('utf8')Es ist ganz einfach. Eine Klasse namens ListName wird hier definiert und
erbt die Methoden in SGMLParser. Verwenden Sie eine -Variable is_h4 als Markierung, um das h4-Tag in der HTML-Datei zu bestimmen. Wenn ein h4-Tag gefunden wird, wird der Inhalt des Tags zum Listenvariablennamen hinzugefügt. Erklären Sie die Funktionen start_h4() und end_h4(). Ihr Prototyp ist
tagname ist der Tagname in SGMLParser Beim Auftreten von e03b848252eb9375d56be284e690e873 wird start_pre aufgerufen, und end_pre wird aufgerufen, wenn bc5574f69a0cba105bc93bd3dc13c4ec auftritt. attrs ist der Parameter des Labels, der in der Form [(Attribut, Wert), (Attribut, Wert), ...] zurückgegeben wird.
start_tagname(self, attrs) end_tagname(self)Python-Crawler-HTML-Parsing-Bibliothek pyQuery
pyQuery ist die Implementierung von jQuery
in Python und kann die jQuery-Syntax verwenden ist sehr praktisch zum Bedienen und Analysieren von HTML-Dokumenten. Sie müssen es vor der Verwendung installieren, easy_install pyquery oder das folgende Beispiel unter Ubuntu:
:
sudo apt-get install python-pyquery
from pyquery import PyQuery as pyq doc=pyq(url=r'http://169it.com/xxx.html') cts=doc('.market-cat') for i in cts: print '====',pyq(i).find('h4').text() ,'====' for j in pyq(i).find('.sub'): print pyq(j).text() , print '\n'Python-Crawler-HTML-Parsing-Bibliothek BeautifulSoup
Ein problematisches Problem besteht darin, dass die meisten Webseiten nicht in vollständiger Übereinstimmung mit Standards geschrieben sind, und das gibt es bei allen Arten unerklärlicher Fehler wecken den Wunsch, die Person zu finden, die die Seite geschrieben hat, und sie zu verprügeln. Um dieses Problem zu lösen, können wir die berühmte BeautifulSoup zum Parsen von HTML-Dokumenten auswählen, die eine gute Fehlertoleranz aufweist.
Das Obige ist der gesamte Inhalt dieses Artikels. Er bietet eine detaillierte Analyse und Einführung in die Implementierung der Python-Webcrawler-Funktion. Ich hoffe, dass er für das Lernen aller hilfreich ist.Das obige ist der detaillierte Inhalt vonEinführung in die grundlegende Schreibmethode der Python-Webcrawler-Funktion. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!