Heim  >  Artikel  >  Backend-Entwicklung  >  Einführung in den grundlegenden Python3-Crawler

Einführung in den grundlegenden Python3-Crawler

一个新手
一个新手Original
2017-09-25 10:53:482382Durchsuche


Erfahrung beim Einstieg in den Python3-Basic-Crawler

Es ist das erste Mal, dass ich einen Blog schreibe, daher bin ich etwas nervös. Kommentieren Sie also nicht, wenn Sie es nicht tun Es gefällt mir nicht.
Wenn es Mängel gibt, hoffe ich, dass die Leser darauf hinweisen und ich sie korrigieren werde.

学习爬虫之前你需要了解(个人建议,铁头娃可以无视):
- **少许网页制作知识,起码要明白什么标签...**
- **相关语言基础知识。比如用java做爬虫起码会用Java语言,用python做爬虫起码要会用python语言...**
- **一些网络相关知识。比如TCP/IP、cookie之类的知识,明白网页打开的原理。**
- **国家法律。知道哪些能爬,哪些不能爬,别瞎爬。**

Wie der Titel schon sagt, verwenden alle Codes in diesem Artikel python3.6.X.

Zuerst müssen Sie das

  1. Requests-Modul

  2. BeautifulSoup-Modul installieren (pip3 install xxxx und es wird in Ordnung sein). (oder lxml-Modul)

Diese beiden Bibliotheken sind sehr leistungsstarke Anfragen und werden zum Senden von Webseitenanfragen und zum Öffnen von Webseiten verwendet, während beautifulsoup und lxml zum Parsen von Inhalten und zum Extrahieren Ihrer Inhalte verwendet werden wollen. BeautifulSoup bevorzugt reguläre Ausdrücke, lxml bevorzugt XPath. Da ich eher daran gewöhnt bin, die Beautifulsoup-Bibliothek zu verwenden, wird in diesem Artikel hauptsächlich die Beautifulsoup-Bibliothek verwendet, ohne zu sehr auf lxml einzugehen. (Es wird empfohlen, vor der Verwendung die Dokumentation zu lesen.)

Die Hauptstruktur des Crawlers:

  • Manager: Verwalten Sie die Adressen, die Sie crawlen möchten.

  • Downloader: Webseiteninformationen herunterladen.

  • Filter: Filtern Sie den benötigten Inhalt aus den heruntergeladenen Webseiteninformationen heraus.

  • Speicherung: Speichern Sie die heruntergeladenen Dinge dort, wo Sie sie speichern möchten. (Abhängig von der tatsächlichen Situation ist dies optional.)

Grundsätzlich können alle Webcrawler, mit denen ich in Kontakt gekommen bin, dieser Struktur nicht entkommen, von Sracpy bis Urllib. Solange Sie diese Struktur kennen, müssen Sie sie sich nicht merken. Der Vorteil dieser Kenntnis besteht darin, dass Sie beim Schreiben zumindest wissen, was Sie schreiben, und wissen, wo Sie Fehler beheben müssen.

Da ist vorne viel Unsinn... Der Text lautet wie folgt:

Dieser Artikel verwendet Crawling https://baike.baidu.com/item/Python (das Baidu Eintrag von Python als Beispiel):

(Weil Screenshots zu mühsam sind. Dies wird das einzige Bild in diesem Artikel sein)

Wenn Sie möchten Um den Inhalt des Python-Eintrags zu crawlen, müssen Sie zunächst die URL kennen, die Sie crawlen möchten:

url = 'https://baike.baidu.com/item/Python'

Da Sie nur diese Seite crawlen müssen, ist der Manager in Ordnung.

 html = request.urlopen(url)

Rufen Sie die Funktion urlopen() auf, der Downloader ist in Ordnung

    Soup = BeautifulSoup(html,"html.parser")
    baike = Soup.find_all("p",class_='lemma-summary')

Verwenden Sie die Funktion „Beautifulsoup“ und die Funktion „find_all“ in der Bibliothek „Beautifulsoup“, der Parser ist in Ordnung
Sagen Sie etwas Hier ist der Rückgabewert der Funktion find_all eine Liste. Daher muss die Ausgabe in einer Schleife gedruckt werden.

Da dieses Beispiel nicht gespeichert werden muss, kann es direkt gedruckt werden, also:

for content in baike:    
print (content.get_text())

Die Funktion von get_text() besteht darin, den Text im Etikett zu extrahieren.

Ordnen Sie den obigen Code an:

import requestsfrom bs4 import BeautifulSoupfrom urllib import requestimport reif __name__ == '__main__':
    url = 'https://baike.baidu.com/item/Python'
    html = request.urlopen(url)
    Soup = BeautifulSoup(html,"html.parser")
    baike = Soup.find_all("p",class_='lemma-summary')    for content in baike:        print (content.get_text())

Der Eintrag in der Baidu-Enzyklopädie wird angezeigt.
Ähnliche Methoden können auch einige Romane, Bilder, Schlagzeilen usw. crawlen und sind keineswegs auf Einträge beschränkt.
Wenn Sie dieses Programm nach Abschluss dieses Artikels schreiben können, herzlichen Glückwunsch, Sie fangen gleich an. Denken Sie daran, den Code niemals auswendig zu lernen.

Die Schritte werden weggelassen...Der ganze Prozess ist etwas holprig...Tut mir leid...es ist verrutscht ( ̄ー ̄)...

Das obige ist der detaillierte Inhalt vonEinführung in den grundlegenden Python3-Crawler. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
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