Heim  >  Artikel  >  Backend-Entwicklung  >  Praktischer Crawler-Kampf in Python: Toutiao Crawler

Praktischer Crawler-Kampf in Python: Toutiao Crawler

WBOY
WBOYOriginal
2023-06-10 13:00:142383Durchsuche

Praktischer Crawler in Python: Der heutige Toutiao-Crawler

Im heutigen Informationszeitalter enthält das Internet riesige Datenmengen, und die Nachfrage nach der Nutzung dieser Daten für Analysen und Anwendungen wird immer größer. Als eines der technischen Mittel zur Datenerfassung sind Crawler auch zu einem beliebten Forschungsgebiet geworden. In diesem Artikel wird hauptsächlich der eigentliche Crawler in Python vorgestellt und der Schwerpunkt liegt auf der Verwendung von Python zum Schreiben eines Crawler-Programms für Toutiao.

  1. Grundlegende Konzepte von Crawlern

Bevor wir mit der Einführung des eigentlichen Crawler-Kampfes in Python beginnen, müssen wir zunächst die Grundkonzepte von Crawlern verstehen.

Einfach ausgedrückt simuliert ein Crawler das Verhalten eines Browsers durch Code und greift auf die erforderlichen Daten von der Website zu. Der spezifische Prozess ist:

  1. Anfrage senden: Verwenden Sie den Code, um eine HTTP-Anfrage an die Zielwebsite zu senden.
  2. Parsing und Erfassung: Verwenden Sie die Parsing-Bibliothek, um Webseitendaten zu analysieren und den erforderlichen Inhalt zu analysieren.
  3. Datenverarbeitung: Speichern Sie die erfassten Daten lokal oder verwenden Sie sie für andere Vorgänge.
  4. Häufig verwendete Bibliotheken für Python-Crawler

Bei der Entwicklung von Python-Crawlern stehen viele häufig verwendete Bibliotheken zur Verfügung:

  1. Anfragen: Eine Bibliothek, die zum Senden von HTTP-Anfragen und zum Verarbeiten von Antworten verwendet wird Ergebnisse.
  2. BeautifulSoup4: Bibliothek zum Parsen von Dokumenten wie HTML und XML.
  3. re: Pythons Bibliothek für reguläre Ausdrücke zum Extrahieren von Daten.
  4. scrapy: Ein beliebtes Crawler-Framework in Python, das sehr umfangreiche Crawler-Funktionen bietet.
  5. Today's Toutiao Crawler-Praxis

Today's Toutiao ist eine sehr beliebte Informationswebsite, die eine große Menge an Nachrichten, Unterhaltung, Technologie und anderen Informationsinhalten enthält. Wir können diesen Inhalt erhalten, indem wir ein einfaches Python-Crawler-Programm schreiben.

Bevor Sie beginnen, müssen Sie zunächst die Bibliotheken „requests“ und „BeautifulSoup4“ installieren. Die Installationsmethode ist wie folgt:

pip install requests
pip install beautifulsoup4

Informationen zur Toutiao-Homepage abrufen:

Zuerst müssen wir den HTML-Code der Toutiao-Homepage abrufen.

import requests

url = "https://www.toutiao.com/"

# 发送HTTP GET请求
response = requests.get(url)

# 打印响应结果
print(response.text)

Nachdem Sie das Programm ausgeführt haben, können Sie den HTML-Code der Toutiao-Homepage sehen.

Holen Sie sich die Nachrichtenliste:

Als nächstes müssen wir die Nachrichtenlisteninformationen aus dem HTML-Code extrahieren. Wir können die BeautifulSoup-Bibliothek zum Parsen verwenden.

import requests
from bs4 import BeautifulSoup

url = "https://www.toutiao.com/"

# 发送HTTP GET请求
response = requests.get(url)

# 创建BeautifulSoup对象
soup = BeautifulSoup(response.text, "lxml")

# 查找所有class属性为title的div标签,返回一个列表
title_divs = soup.find_all("div", attrs={"class": "title"})

# 遍历列表,输出每个div标签的文本内容和链接地址
for title_div in title_divs:
    title = title_div.find("a").text.strip()
    link = "https://www.toutiao.com" + title_div.find("a")["href"]
    print(title, link)

Nach der Ausführung des Programms wird die Nachrichtenliste auf der Homepage von Toutiao ausgegeben, einschließlich des Titels und der Linkadresse jeder Nachricht.

Nachrichtendetails abrufen:

Endlich können wir die Details zu jeder Nachricht abrufen.

import requests
from bs4 import BeautifulSoup

url = "https://www.toutiao.com/a6931101094905454111/"

# 发送HTTP GET请求
response = requests.get(url)

# 创建BeautifulSoup对象
soup = BeautifulSoup(response.text, "lxml")

# 获取新闻标题
title = soup.find("h1", attrs={"class": "article-title"}).text.strip()

# 获取新闻正文
content_list = soup.find("div", attrs={"class": "article-content"})
# 将正文内容转换为一个字符串
content = "".join([str(x) for x in content_list.contents])

# 获取新闻的发布时间
time = soup.find("time").text.strip()

# 打印新闻的标题、正文和时间信息
print(title)
print(time)
print(content)

Nach dem Ausführen des Programms werden Titel, Text und Zeitinformationen der Nachrichten ausgegeben.

  1. Zusammenfassung

Durch die Einleitung dieses Artikels haben wir die Grundkonzepte von Crawlern in Python, häufig verwendete Bibliotheken und die Verwendung von Python zum Schreiben von Toutiao-Crawlerprogrammen kennengelernt. Natürlich ist die Crawler-Technologie eine Technologie, die kontinuierlich verbessert und verbessert werden muss. Wir müssen in der Praxis kontinuierlich zusammenfassen und verbessern, wie die Stabilität des Crawler-Programms sichergestellt und Anti-Crawling-Methoden vermieden werden können.

Das obige ist der detaillierte Inhalt vonPraktischer Crawler-Kampf in Python: Toutiao 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