Heim > Backend-Entwicklung > Python-Tutorial > Einführung in die grundlegende Schreibmethode der Python-Webcrawler-Funktion

Einführung in die grundlegende Schreibmethode der Python-Webcrawler-Funktion

高洛峰
Freigeben: 2017-03-13 18:12:29
Original
1962 Leute haben es durchsucht

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()
Nach dem Login kopieren
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')
Nach dem Login kopieren
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

 wird start_pre aufgerufen, und end_pre wird aufgerufen, wenn 
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)
Nach dem Login kopieren

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
Nach dem Login kopieren


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'
Nach dem Login kopieren
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!

Verwandte Etiketten:
Quelle:php.cn
Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage