So scrapen Sie Youtube-Daten mit Python

Veröffentlicht: 2019-05-29
Inhaltsverzeichnis anzeigen
Warum Daten von Youtube kratzen?
1. Finden Sie die beliebtesten Keywords
2. Hashtags vergleichen
3. Finden Sie die beliebtesten Kanäle
4. Behalten Sie die Popularität von Kanälen im Auge
5. Aufzeichnen von Vorlieben, Abneigungen und Aufrufen von Videos
Beginnen wir mit dem Code:
Der YouTube-Crawler-Code erklärt:
Welche Datenpunkte können Sie von Youtube kratzen?
TITEL
KANAL NAME
ANZAHL DER ANSICHTEN
LIKES
Abneigungen
ANZAHL DER ABONNEMENTS
HASHTAGS
Fazit
Benötigen Sie Hilfe beim Extrahieren von Webdaten?

YouTube hat sich als klarer Gewinner unter den Video-Sharing-Websites herausgestellt, und obwohl es angeblich einen Wert von mehr als 160 Milliarden US-Dollar hat, ist die Zahl der Menschen, die mit der Website ihren Lebensunterhalt verdienen, ebenfalls enorm. Diese Ersteller von Inhalten nehmen am YouTube-Partnerschaftsprogramm teil und verdienen durch die Monetarisierung ihrer Inhalte eine Menge Geld durch Werbung.

Warum Daten von Youtube kratzen?

YouTube-Daten können für eine Vielzahl von Anwendungsfällen hilfreich sein, z. B.:

1. Finden Sie die beliebtesten Keywords

Angenommen, Sie führen eine Suche durch, um die besten Videos zu finden, die auf YouTube für bestimmte Wörter angezeigt werden. Wenn Sie jetzt die Vorlieben, Abneigungen, Aufrufe und Titel jedes dieser Videos zusammenkratzen, können Sie eine Liste mit Schlüsselwörtern erstellen, die, wenn sie in Ihre YouTube-Titel eingefügt werden, zu besseren Einnahmen führen können.

2. Hashtags vergleichen

Indem Sie Likes und Aufrufe von Videos mit bestimmten Hashtags vergleichen, können Sie eine bessere Vorstellung davon bekommen, welche Hashtags Sie für Ihr Video verwenden sollten, um es beliebter zu machen, oder um zu verstehen, welche Hashtags besser zu Ihrem Videotitel passen.

3. Finden Sie die beliebtesten Kanäle  

Das Extrahieren von Top-Videos auf YouTube kann Ihnen helfen, ein Häufigkeitsdiagramm der vorkommenden Kanalnamen zu erstellen, sodass Sie die Top-Kanäle finden können, die den Leuten gefallen. Dies wiederum würde Ihnen auch helfen zu verstehen, welche Themen bei YouTube-Zuschauern am beliebtesten sind.

4. Behalten Sie die Popularität von Kanälen im Auge

Indem Sie die Daten neu hochgeladener Videos eines bestimmten YouTube-Kanals extrahieren, können Sie feststellen, ob die Popularität eines Kanals zunimmt oder abnimmt oder stagniert.

5. Aufzeichnen von Vorlieben, Abneigungen und Aufrufen von Videos

Sie können ein Diagramm mit der Zeit auf der x-Achse und Vorlieben, Abneigungen oder Aufrufen auf der y-Achse erstellen, indem Sie in regelmäßigen Zeitabständen Daten aus diesen Videos kratzen.

Beginnen wir mit dem Code:

Da wir den Installations- und Initialisierungsprozess bereits in früheren Artikeln wie diesem zum Thema „Daten auslesen“ erklärt haben , hoffen wir, dass Sie mit diesen Schritten fertig sind.

Verwenden Sie zum Ausführen des Codes den Python-Befehl und geben Sie dann eine YouTube-Video-URL ein, wenn Sie dazu aufgefordert werden.

YouTube-Daten extrahieren
Abb.: Ausführen des Codes aus dem Shell-Skript.

Kopieren Sie den unten angegebenen Code in eine Datei und benennen Sie ihn als youtubeDataExtractor.py (obwohl Sie ihm eigentlich einen beliebigen Dateinamen geben könnten, solange er auf „.py“ endet).

[code language="python"]

#!/usr/bin/python
# -*- Kodierung: utf-8 -*-

import urllib.request
import urllib.parse
import urllib.fehler
aus bs4 importieren BeautifulSoup
SSL importieren
json importieren
ast. importieren
json importieren
Betriebssystem importieren
from urllib.request import Anfrage, urlopen

# Zum Ignorieren von SSL-Zertifikatsfehlern

ctx = ssl.create_default_context()
ctx.check_hostname = Falsch
ctx.verify_mode = ssl.CERT_NONE

# Eingabe vom Benutzer

url = input('YouTube-Video-URL eingeben- ')

# Die Website glauben machen, dass Sie mit einem Mozilla-Browser darauf zugreifen

req = Request(url, headers={'User-Agent': 'Mozilla/5.0'})
Webseite = urlopen(req).read()

# Erstellen eines BeautifulSoup-Objekts der HTML-Seite zum einfachen Extrahieren von Daten.

Suppe = BeautifulSoup(Webseite, 'html.parser')
html = Suppe.prettify('utf-8')
video_details = {}
andere_details = {}

for span in soup.findAll('span',attrs={'class': 'watch-title'}):
video_details['TITEL'] = span.text.strip()

für script in soup.findAll('script',attrs={'type': 'application/ld+json'}):
channelDesctiption = json.loads(script.text.strip())
video_details['CHANNEL_NAME'] = channelDesctiption['itemListElement'][0]['item']['name']

für div in soup.findAll('div',attrs={'class': 'watch-view-count'}):
video_details['NUMBER_OF_VIEWS'] = div.text.strip()

for button in soup.findAll('button',attrs={'title': 'I like this'}):
video_details['LIKES'] = button.text.strip()

for button in soup.findAll('button',attrs={'title': 'I dislike this'}):
video_details['DISLIKES'] = button.text.strip()

for span in soup.findAll('span',attrs={'class': 'yt-subscription-button-subscriber-count-branded-horizontal yt-subscriber-count'}):
video_details['NUMBER_OF_SUBSCRIPTIONS'] = span.text.strip()

Hashtags = []
for span in soup.findAll('span',attrs={'class': 'standalone-collection-badge-renderer-text'}):
für a in span.findAll('a',attrs={'class': 'yt-uix-sessionlink'}):
hashtags.append(a.text.strip())
video_details['HASH_TAGS'] = Hashtags

mit open('output_file.html', 'wb') als Datei:
file.write(html)

mit open('data.json', 'w', encoding='utf8') als outfile:
json.dump (video_details, outfile, sure_ascii=False,indent=4)

print ('———-Datenextraktion abgeschlossen. JSON-Datei prüfen.———-')
[/Code]

Sobald Sie den Code ausführen, finden Sie in Ihrem aktuellen Verzeichnis ein JSON mit dem Namen data.json. Wir haben den Code für einige beliebte Musikvideos ausgeführt und hier sind die damit verbundenen JSONs:

1. Donner von Imagine Dragons –

[code language="python"]

{
„TITEL“: „Stell dir Drachen vor – Donner“,
„CHANNEL_NAME“: „ImagineDragonsVEVO“,
„NUMBER_OF_VIEWS“: „1.182.556.781 Aufrufe“,
„Gefällt mir“: „6.693.559“,
„Gefällt mir nicht“: „337.823“,
„NUMBER_OF_SUBSCRIPTIONS“: „17M“,
„HASH_TAGS“: []
}

[/Code]

2. In deinen Gefühlen von Drake

[code language="python"]
{
„TITEL“: „Drake – In My Feelings (Text, Audio) „Kiki, liebst du mich““,
„CHANNEL_NAME“: „Spezialeinheit“,
„NUMBER_OF_VIEWS“: „278.121.686 Aufrufe“,
„Gefällt mir“: „2.407.688“,
„Gefällt mir nicht“: „114.933“,
„NUMBER_OF_SUBSCRIPTIONS“: „614K“,
„HASH_TAGS“: [
„#InMeinenGefühlen“,
"#Erpel",
"#Skorpion"
]
}
[/Code]

Der YouTube-Crawler-Code erklärt:

Wie üblich kratzen wir zuerst den HTML-Code von der Webseite und speichern ihn in einer Datei in unserem lokalen Verzeichnis, damit wir ihn analysieren und die Datenpunkte finden können, die leicht extrahiert werden können und auch wertvoll wären. Der größte Teil der Suche nach Datenpunkten in der HTML-Seite muss manuell durchgeführt werden, indem nach bestimmten Schlüsselwörtern oder Werten gesucht und herausgefunden wird, wo sie vorkommen.

Wir haben BeautifulSoup (BS4) zum Extrahieren von Daten aus bestimmten Stellen im HTML-Code verwendet.

  1. Das span-Typ-Element mit der Klasse „watch-title“ ist der Ort, an dem Sie den Titel des Videos finden.
  2. Das Skriptelement vom Typ „application/ld+json“ enthält den Kanalnamen.
  3. Das div-Element mit der Klasse watch-view-count würde Ihnen helfen, die Anzahl der Aufrufe dieses bestimmten YouTube-Videos zu ermitteln.
  4. Das Schaltflächenelement mit dem Titel „Gefällt mir“ enthält die Anzahl der „Gefällt mir“-Angaben für dieses bestimmte Video.
  5. Ähnlich wie beim obigen Punkt hat das Schaltflächenelement mit dem Titel „Das gefällt mir nicht“ die Anzahl der Abneigungen für ein bestimmtes Video.
  6. Das span-Element mit der Klasse „yt-subscription-button-subscriber-count-branded-horizontal yt-subscriber-count“ ist eines, aus dem Sie die Anzahl der Abonnenten des Kanals extrahieren können, der dieses bestimmte Video hochgeladen hat.
  7. Das Auffinden der mit einem bestimmten Video verknüpften Hashtags ist etwas komplizierter als die der anderen Datenpunkte. Zuerst müssen Sie alle Spans mit der Klasse „standalone-collection-badge-renderer-text“ extrahieren, und von dort müssen Sie alle a-Tags mit der Klasse „yt-uix-sessionlink“ extrahieren. Indem Sie den Text in allen a-Tags in ein Array extrahieren, können Sie eine Liste von Hashtags erstellen. Dieses Array kann dem Ergebnis-JSON unter einem bestimmten Schlüssel namens „HASH_TAGS“ hinzugefügt werden, um die Informationen in einem strukturierten Format im Endergebnis-JSON zu erhalten.

Welche Datenpunkte können Sie von Youtube kratzen?

Mit dem oben angegebenen Code können Sie bestimmte Datenpunkte aus jedem YouTube-Video kratzen, solange Sie deren URL kennen. Lediglich das Hashtag-Feld kann bei bestimmten Videos fehlen, da es auf YouTube-Videoseiten kein Pflichtfeld ist. Die Datenpunkte, die geschabt werden können, sind wie folgt:

TITEL

Der wichtigste Datenpunkt ist derjenige, den wir ganz am Anfang extrahieren. Der Titel des Videos enthält viele Informationen und ist von größter Bedeutung, ohne die alle anderen Datenpunkte überhaupt keinen Sinn machen würden.

KANAL NAME

Direkt nach dem Titel ist der Name des Kanals wichtig, um den Titel dem Ersteller zuzuordnen – also dem, der den Inhalt erstellt hat. In YouTube werden Videos über ihre Kanalnamen und nicht über ihre Ersteller verknüpft, da in vielen Fällen mehr als eine Person an Videos eines einzelnen Kanals arbeitet.

ANZAHL DER ANSICHTEN

Die einfachste Metrik, um die Reichweite eines Videos zu verstehen, ist die Anzahl der Aufrufe, die es erhalten hat. Dies ist auch die wichtigste Metrik für ein YouTube-Video und bestimmt in vielerlei Hinsicht, wie viel Umsatz der Ersteller des Videos erzielen wird.

LIKES

Die Likes auf einem YouTube-Video geben einfach an, wie viel Prozent der Zuschauer das Video genug mochten, um tatsächlich auf die Schaltfläche „Daumen hoch“ unter einem Video zu klicken.

Abneigungen

Ähnlich wie beim obigen Datenpunkt würde die Anzahl der Dislikes die Anzahl der Klicks auf den Dislike-Button für ein Video bestimmen.

ANZAHL DER ABONNEMENTS

Während Likes, Dislikes und Views ein Bild von der Popularität eines einzelnen YouTube-Videos zeichnen, gibt die Anzahl der Abos eine feinere Vorstellung davon, wie beliebt der YouTube-Kanal ist. Für YouTube-Kanäle haben wir keine andere Metrik. Die Anzahl der Abonnements ist der einzige einzelne Datenpunkt und je höher sie ist, desto beliebter ist der betreffende YouTube-Kanal.

HASHTAGS

Hashtags sind zu einer beliebten Methode geworden, um Ihre Inhalte in verschiedenen Medien durchsuchbar zu machen. Ob Facebook-Posts oder Instagram-Bilder, Menschen verwenden heute Hashtags mit verschiedenen Arten von Online-Inhalten, um verschiedene Arten von Inhalten miteinander in Verbindung zu bringen. Das ist der Grund, warum „Trend-Hashtags“ heute eine Sache sind.

Fazit

Während der angegebene Code nur einige spezifische Datenpunkte aus einer YouTube-Videoseite extrahieren kann, kann Ihnen das Durchsuchen von HTML-Seiten von verschiedenen YouTube-Seiten dabei helfen, mehr Datenpunkte zu finden, die unter ähnlichen HTML-Elementen vorkommen. Web Scraping hat keine festen Regeln, da sich Websites selbst ständig ändern. Daher ist das Lernen, welche Daten zu schaben sind und wie man scrapt, etwas, das nur aus Erfahrung gesammelt werden kann, indem verschiedene Webseiten mit unterschiedlichen Datenformaten gescrapt werden.


Benötigen Sie Hilfe beim Extrahieren von Webdaten?

Erhalten Sie saubere und gebrauchsfertige Daten von Websites für Geschäftsanwendungen durch unsere Web-Scraping-Dienste.

Hoppla! Wir konnten Ihr Formular nicht finden.

Haftungsausschluss: Der in diesem Tutorial bereitgestellte Code dient nur zu Lernzwecken. Wir sind nicht verantwortlich für die Verwendung und übernehmen keine Haftung für eine nachteilige Verwendung des Quellcodes.