Heim  >  Artikel  >  Backend-Entwicklung  >  Praktische Verwendung von Crawlern in Python: Zhihu-Crawler

Praktische Verwendung von Crawlern in Python: Zhihu-Crawler

WBOY
WBOYOriginal
2023-06-10 16:24:071141Durchsuche

Im heutigen Internetzeitalter kann man sagen, dass die Informationen, die wir benötigen, allumfassend sind, aber wie wir an diese Informationen gelangen, ist oft ein Problem. Eine der am häufigsten verwendeten Methoden ist das Sammeln von Informationen durch Webcrawler. Was das Schreiben von Webcrawlern betrifft, ist die Python-Sprache oft eines der beliebtesten Tools. In diesem Artikel beschreiben wir, wie Sie mit Python einen auf Zhihu basierenden Webcrawler schreiben.

Zhihu ist eine bekannte soziale Frage-und-Antwort-Website, die für die Integration und Zusammenfassung von Informationen sehr wichtig ist. Wir können Crawler einsetzen, um Fragen, Antworten, Benutzerinformationen usw. auf der Website zu erhalten. Hier stellen wir hauptsächlich vor, wie Sie Zhihu-Benutzerinformationen erhalten.

Zuerst müssen wir die gemeinsamen Bibliotheken von Python-Crawlern verwenden – Requests und BeautifulSoup. Die Requests-Bibliothek kann uns dabei helfen, den Inhalt der Webseite abzurufen, und die BeautifulSoup-Bibliothek kann uns dabei helfen, den Inhalt der Webseite zu analysieren und die benötigten Informationen zu erhalten. Diese beiden Bibliotheken müssen vor der Verwendung installiert werden.

Nach Abschluss der Installation können wir zunächst die Homepage des Zhihu-Benutzers über die Requests-Bibliothek abrufen, zum Beispiel:

import requests

url = 'https://www.zhihu.com/people/zionyang/'
headers = {'User-Agent': 'Mozilla/5.0 (Windows NT 6.1; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/58.0.3029.110 Safari/537.3'}
response = requests.get(url, headers=headers)
html = response.text

Im obigen Code erhalten wir die Homepage des Zhihu-Benutzers „zionyang“ über die get-Methode in den Requests Bibliothek. Darunter wird der Header-Parameter hinzugefügt, um zu verhindern, dass er vom Anti-Crawler-Mechanismus erkannt wird.

Nachdem wir den Quellcode der Webseite erhalten haben, können wir BeautifulSoup verwenden, um den HTML-Inhalt zu analysieren. Wie im folgenden Code gezeigt:

from bs4 import BeautifulSoup

soup = BeautifulSoup(html, 'lxml')

Stellen Sie den Parser auf „lxml“ ein, und dann können wir die leistungsstarke Funktion von BeautifulSoup zum Parsen von HTML-Dokumenten verwenden. Nachfolgend finden Sie einige häufig verwendete Parsing-Methoden.

  1. find_all-Methode: Gibt eine Liste aller Knoten zurück, die der angegebenen Bedingung entsprechen. Die folgende Codeimplementierung gibt beispielsweise alle „Fragen“ auf der Homepage des Benutzers zurück:
questions = soup.find_all('a', {'data-nav':'question'})
for question in questions:
    print(question.text)
  1. find-Methode: Gibt den ersten Knoten zurück, der die angegebenen Bedingungen erfüllt.
name = soup.find('span', {'class': 'ProfileHeader-name'}).text
  1. select-Methode: Verwenden Sie zum Suchen den CSS-Selektor.
education = soup.select('li.ProfileEducationList-item')[0].select('div.ProfileEducationList-degreeName')[0].text

Durch die oben beschriebene Methode können wir verschiedene Inhalte in Zhihu-Benutzerinformationen erhalten. Es ist zu beachten, dass wir beim Zugriff auf die Homepage des Benutzers ohne Anmeldung auf der Webseite nur die grundlegenden Informationen des Benutzers und nicht einmal private Informationen wie das Geschlecht erhalten können.

Während wir Benutzerinformationen erhalten, können wir auch die Follower, Fans, Likes und andere Daten des Benutzers ermitteln. Wir können Tools wie Fiddler verwenden, um Pakete zu erfassen, um die URL zu erhalten, die den erforderlichen Daten entspricht, und dann über die Anforderungsbibliothek darauf zuzugreifen:

url = 'https://www.zhihu.com/people/zionyang/followers'
headers = {
    'User-Agent': 'Mozilla/5.0 (Windows NT 6.1; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/58.0.3029.110 Safari/537.3',
    'Cookie': 'your_cookie'
}
response = requests.get(url, headers=headers)
data = response.json()

Unter anderem müssen unsere eigenen Cookie-Informationen zum Header-Parameter hinzugefügt werden, andernfalls wir nicht in der Lage sein, die erforderlichen Daten zu erhalten.

Durch die oben genannten Methoden können wir Python verwenden, um unseren eigenen Webcrawler zu schreiben und umfangreiche Informationen zu erhalten. Natürlich müssen Sie während des Crawling-Vorgangs darauf achten, die relevanten Vorschriften der Website einzuhalten, um eine Beeinträchtigung der Website zu vermeiden, und auch auf den Schutz personenbezogener Daten achten. Ich hoffe, dass die Einführung in diesem Artikel für Anfänger hilfreich ist.

Das obige ist der detaillierte Inhalt vonPraktische Verwendung von Crawlern in Python: Zhihu-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