Heim >Backend-Entwicklung >Python-Tutorial >Praktischer Crawler-Kampf in Python: Maoyan Movie Crawler

Praktischer Crawler-Kampf in Python: Maoyan Movie Crawler

WBOY
WBOYOriginal
2023-06-10 12:27:262918Durchsuche

Mit der rasanten Entwicklung der Internettechnologie wird die Informationsmenge im Internet immer größer. Als führende inländische Filmdatenplattform bietet Maoyan Movies den Nutzern umfassende Filminformationsdienste. In diesem Artikel wird erläutert, wie Sie mit Python einen einfachen Maoyan-Filmcrawler schreiben, um filmbezogene Daten abzurufen.

  1. Übersicht über Crawler

Ein Crawler oder Webcrawler ist ein Programm, das automatisch Internetdaten abruft. Es kann auf Zielwebsites zugreifen und Daten über Links im Internet abrufen, wodurch eine automatisierte Informationserfassung realisiert wird. Python ist eine leistungsstarke Programmiersprache, die häufig in der Datenverarbeitung, Webcrawlern, visuellen Diagrammen usw. verwendet wird.

  1. Crawler-Implementierung

Der Maoyan-Filmcrawler in diesem Artikel wird über Pythons Anfragen und BeautifulSoup-Bibliotheken implementiert. Requests ist eine Python-HTTP-Bibliothek, mit der problemlos Webseitenanforderungen gesendet werden können, und BeautifulSoup ist die HTML-Parsing-Bibliothek von Python, mit der HTML-Seiten schnell analysiert werden können. Bevor Sie beginnen, müssen Sie diese beiden Bibliotheken installieren.

2.1 Bibliothek importieren

Öffnen Sie den Python-Editor und erstellen Sie eine neue Python-Datei. Zuerst müssen Sie die erforderlichen Bibliotheken importieren:

import requests
from bs4 import BeautifulSoup
import csv

2.2 Erstellen Sie einen Anforderungslink

Als nächstes erstellen Sie einen Anforderungslink. Öffnen Sie die Maoyan Movie-Website, suchen Sie den Link zum Zielfilm und kopieren Sie ihn. Hier ist der Film „Detective Chinatown 3“ als Beispiel:

url = 'https://maoyan.com/films/1250952'

2.3 Senden Sie eine Anfrage

Erstellen Sie Header und legen Sie die Header-Informationen der Anfrage fest, einschließlich User-Agent, Referrer, Cookie und anderen Informationen, um die tatsächlichen Informationen zu simulieren Browser-Anfrage, um auf die Webseite zuzugreifen. Hier nehmen wir den Chrome-Browser als Beispiel. Verwenden Sie dann die Anforderungsbibliothek, um eine Anfrage zu senden und den HTML-Code der Webseite abzurufen:

headers = {
    'User-Agent': 'Mozilla/5.0 (Windows NT 10.0;Win64) AppleWebkit/537.36 (KHTML, like Gecko) Chrome/58.0.3029.110 Safari/537.3'
}
response = requests.get(url,headers=headers)
html = response.text

2.4 HTML-Code analysieren

Konvertieren Sie den erhaltenen HTML-Code in ein BeautifulSoup-Objekt, verwenden Sie die BeautifulSoup-Bibliothek, um den HTML-Code zu analysieren und abzurufen Zieldaten. Da die HTML-Codestruktur der Maoyan-Filmwebsite relativ komplex ist, sind fundierte Kenntnisse in HTML und BeautifulSoup erforderlich.

soup = BeautifulSoup(html,'html.parser')
movie_title = soup.find('h1',class_='name').text
movie_info = soup.find_all('div',class_='movie-brief-container')[0]
movie_type = movie_info.find_all('li')[0].text 
movie_release_data = movie_info.find_all('li')[2].text 
movie_actors = movie_info.find_all('li')[1].text 
movie_score = soup.find('span',class_='score-num').text

2.5 Daten speichern

Nach der Verarbeitung der HTML-Seite müssen Sie die erhaltenen Daten lokal speichern. Hier wird die CSV-Bibliothek von Python zum Speichern von Daten verwendet. Die CSV-Bibliothek kann Daten in das CSV-Format konvertieren, um die spätere Verarbeitung zu erleichtern.

with open('movie.csv','w',newline='',encoding='utf-8-sig') as csvfile:
    writer = csv.writer(csvfile)
    writer.writerow(['电影名称',movie_title])
    writer.writerow(['电影类型',movie_type])
    writer.writerow(['上映日期',movie_release_data])
    writer.writerow(['演员阵容',movie_actors])
    writer.writerow(['豆瓣评分',movie_score])

Der gesamte Code lautet wie folgt:

import requests
from bs4 import BeautifulSoup
import csv

url = 'https://maoyan.com/films/1250952'
headers = {
    'User-Agent': 'Mozilla/5.0 (Windows NT 10.0;Win64) AppleWebkit/537.36 (KHTML, like Gecko) Chrome/58.0.3029.110 Safari/537.3'
}
response = requests.get(url,headers=headers)
html = response.text
soup = BeautifulSoup(html,'html.parser')
movie_title = soup.find('h1',class_='name').text
movie_info = soup.find_all('div',class_='movie-brief-container')[0]
movie_type = movie_info.find_all('li')[0].text 
movie_release_data = movie_info.find_all('li')[2].text 
movie_actors = movie_info.find_all('li')[1].text 
movie_score = soup.find('span',class_='score-num').text 
with open('movie.csv','w',newline='',encoding='utf-8-sig') as csvfile:
    writer = csv.writer(csvfile)
    writer.writerow(['电影名称',movie_title])
    writer.writerow(['电影类型',movie_type])
    writer.writerow(['上映日期',movie_release_data])
    writer.writerow(['演员阵容',movie_actors])
    writer.writerow(['豆瓣评分',movie_score])
  1. Zusammenfassung

In diesem Artikel wird erläutert, wie Sie Pythons Anfragen und BeautifulSoup-Bibliotheken verwenden, um den Maoyan-Film-Crawler zu implementieren. Durch das Senden von Netzwerkanforderungen, das Parsen von HTML-Code, das Speichern von Daten und andere Schritte können wir die filmbezogenen Zieldaten problemlos abrufen und lokal speichern. Die Webcrawler-Technologie hat einen umfassenden Anwendungswert bei der Datenerfassung, dem Data Mining usw. Wir können unser technisches Niveau durch kontinuierliches Lernen verbessern und weiterhin in der Praxis forschen.

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