Homepage: https://program-board.com
Endziel: Extrahieren Sie Daten, um eine Liste von Filmen zu erstellen, die nach Altersgruppen von Filmarks hoch bewertet werden. In diesem Dokument extrahieren wir Informationen zu mehreren Elementen auf einer bestimmten Seite. Es gibt nur einen Film zum Extrahieren.
Überprüfen Sie nach wie vor den Quellcode der Informationen, die Sie extrahieren möchten. In diesem Dokument werden die folgenden Informationen extrahiert.
· Filmtitel ・ Screening-Datum · Ursprungsland ・ Screening-Zeit ・ Genre (bis zu 3) ・ Stern (Bewertung) ·unter der Regie von ・ Drehbuch (bis zu 2 Personen) ・ Darsteller (bis zu 3 Personen)
import requests
import bs4
import pandas as pd
#Holen Sie sich Webinformationen
url= 'https://filmarks.com/list/trend'
res = requests.get(url)
#HTML-Formatierung
soup = bs4.BeautifulSoup(res.text) #features='lxml')
Extrahieren Sie vorerst die Webinformationen der ersten Arbeit auf dem Bildschirm.
infos = soup.select('div.p-movie-cassette__info')
#infos = infos.select('a.c-label')
movie = infos[0]
print('Anzahl der Arbeiten:{}'.format(len(infos)))
print(movie.prettify())
Wir werden versuchen, Informationen für mehrere Artikel von hier zu extrahieren. Da jedoch ein Fehler aufgetreten ist, wird auch Versuch und Irrtum für den Fehler beschrieben.
Da der Quellcode "a.c-label" war, um die Informationen des Regisseurs auf die gleiche Weise wie beim letzten Mal zu extrahieren, habe ich versucht, mit "a.c-label" zu extrahieren. Es wurden jedoch nicht nur der Regisseur, sondern auch das Drehbuch und die Besetzung extrahiert. Nach der Bestätigung wurden der Regisseur, das Drehbuch und die Besetzung im Quellcode ebenfalls mit "a.c-label" gekennzeichnet.
Daher ist es beim Organisieren der extrahierten Informationen erforderlich, diese beispielsweise als Element der Liste zu speichern. Der Code zum Extrahieren mehrerer Elemente wird in movie_info () definiert, um die extrahierten Informationen zu organisieren. Der Code und das Ausgabeergebnis sind wie folgt.
def movie_info(info):
#Zur Ausgabe
out_list = []
#Titel
title = info.select('h3.p-movie-cassette__title')[0].text
out_list.append(title)
#Screening-Datum
release_date = info.select('span')[2].text
release_date = '{}/{}/{}'.format(release_date[0:4],release_date[5:7],release_date[8:10])
out_list.append(release_date)
#Ursprungsland
country = info.select('div.p-movie-cassette__other-info')[0].select('a')[0].text
out_list.append(country)
#Screening-Zeit
time = info.select('span')[3].text.replace('Protokoll','')
out_list.append(time)
#Genre(Bis zu 3)
genre_list = ['-','-','-']
genre_web = info.select('div.p-movie-cassette__genre')[0].select('a')#Erstellen einer Genre-Liste
for i in range(len(genre_web)):
genre_list.insert(i,genre_web[i].text)
out_list.append(genre_list[0])
out_list.append(genre_list[1])
out_list.append(genre_list[2])
#Star(Auswertung)
score = info.select('div.c-rating__score')[0].text
out_list.append(score)
#unter der Regie von
director= info.select('div.p-movie-cassette__people-wrap')[0].select('a')[0].text
out_list.append(director)
#Drehbuch(Bis zu 2 Personen)
scenario_list = ['-','-','-']
scenario_web = info.select('div.p-movie-cassette__people-wrap')[1].select('a')
for i in range(len(scenario_web)):
scenario_list.insert(i,scenario_web[i].text)
out_list.append(scenario_list[0])
out_list.append(scenario_list[1])
#Künstler(Bis zu 3 Personen)
cast_list = ['-','-','-']
cast_web = info.select('div.p-movie-cassette__people-wrap')[2].select('a')
for i in range(len(cast_web)):
cast_list.insert(i,cast_web[i].text)
out_list.append(cast_list[0])
out_list.append(cast_list[1])
out_list.append(cast_list[2])
return out_list
###################################
['Joker',
'2019/10/04',
'Amerika',
'122',
'Theater',
'Klima',
'Thriller',
'4.4',
'Todd Phillips',
'Todd Phillips',
'-',
'Joaquin Phoenix',
'Robert De Niro',
'-']
###################################
Ich habe versucht, basierend auf diesem Code Informationen zu mehreren Werken zu extrahieren, aber einige Werke hatten kein Skript. Anstatt die Elemente der Liste zu verwenden, ändern Sie sie daher so, dass sie direkt durch Elemente wie "Skript" identifiziert werden können.
Recommended Posts