Heim >Backend-Entwicklung >Python-Tutorial >Praktischer Crawler-Kampf in Python: Maoyan Movie Crawler
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.
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.
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])
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!