donker proxyscrape logo

Scrape YouTube Videos Using Python- An Easy Approach in 2024

Hoe doe je dat?, Python, Schrapen, -05-2022 december5 min gelezen
Na Google is YouTube de populairste engine ter wereld. Het is een video-sharing service waar gebruikers video's kunnen bekijken, delen, liken, becommentariëren en uploaden. Het is de thuisbasis van vloggers, informatieve inhoud, educatieve video's en veel andere gegevens. Enkele van de belangrijkste functies van Youtube zijn:
  • Video's zoeken en bekijken
  • Een persoonlijk Youtube-kanaal maken
  • Video's uploaden naar je kanaal
  • Andere kanalen en gebruikers abonneren
  • Andere Youtube-video's liken en delen
  • Afspeellijsten maken om video's te ordenen

Met behulp van web scraping kun je gegevens uit Youtube halen en je organisatie laten profiteren door waardevolle inzichten uit die gegevens te halen. Wanneer je leert om gegevens uit Youtube te halen, is het belangrijk om te weten welk type gegevens je wilt hebben. Als je bijvoorbeeld de reacties van mensen op je werk wilt weten, kun je de commentaarsectie scrapen voor een analyse van het gebruikerssentiment. Ook als je het succes van een video wilt volgen, kun je gegevens over de videoprestaties scrapen. 

Voordat we leren hoe we Youtube video's kunnen scrapen, moeten we eerst leren waarom we ze moeten scrapen.

Inhoudsopgave

Waarom video's op Youtube scrapen?

Hieronder staan twee belangrijke redenen voor het schrapen van Youtube-gegevens.

  • Gegevens over videoprestaties - Als je informatieve video's voor een merk post, is het belangrijk om bij te houden hoe je publiek erop reageert. Door de pagina voor een specifieke video te scrapen, krijg je het aantal weergaven, likes, dislikes, opmerkingen, kanaalabonnees en meer. Je moet rekening houden met de verhouding van elk van deze statistieken. Een video kan bijvoorbeeld miljoenen weergaven hebben en meer dislikes dan likes. Het aantal weergaven is geen indicatie van een video die goed gevonden wordt of van hoge kwaliteit is. In plaats daarvan kan de verhouding tussen weergaven en likes/dislikes een vorm van sentimentanalyse zijn.
  • Kanaalgegevens - Als je de pagina van een Youtube-kanaal schraapt, krijg je gegevens over de afspeellijsten, het aantal video's, abonnees en meer. Verder is het schrapen van de pagina's van concurrerende kanalen nuttig en informatief om beter te begrijpen of jouw kanaal hetzelfde invloedniveau heeft als dat van hen. 
  • Automatisering bereiken - Met robuuste web scrapers kun je automatisch gegevens uit Youtube halen. Het bespaart tijd omdat je gegevens kunt verzamelen met een groter volume dan een mens ooit kan hopen te bereiken. 
  • Bedrijfsinformatie en inzichten - Je kunt een beter beeld krijgen van de activiteiten van je concurrenten door gegevens in grote hoeveelheden te downloaden, op te schonen en te analyseren, wat leidt tot betere zakelijke besluitvorming.

Youtube-video's scrapen met Python

Laten we eens kijken hoe je Youtube-videogegevens kunt extraheren met Selenium en Python. Selenium is een populaire tool om webbrowsers te automatiseren. Je kunt eenvoudig een Python-script programmeren om een webbrowser te automatiseren met Selenium. 

Selenium heeft een driver nodig voor de interface met de door jou gekozen browser. Chrome vereist bijvoorbeeld een ChromeDriver die geïnstalleerd moet worden voordat je begint met scrapen.

De Python-omgeving instellen

Stap 1 - Open je terminal en installeer Selenium met de onderstaande opdracht.
$ pip installeert selenium
Stap 2 - Je moet de Chrome WebDriver downloaden volgens de onderstaande stappen.
Stap 3 - Je moet het stuurprogrammabestand verplaatsen naar een PATH.

Je moet naar de downloadmap gaan en het volgende doen.

  • Pak het bestand uit.
  • Verplaats het naar usr/local/bin PATH.
$ cd Downloads
$ unzip chromedriver_linux64.zip
$ mv chromedriver /usr/local/bin/

Youtube-video's scrapen

We scrapen de video-ID, titel en beschrijving van een bepaalde categorie van Youtube. De categorieën die we kunnen scrapen zijn als volgt:

  • Wetenschap
  • Voedsel
  • Reizen
  • Productie enz.

Bibliotheken importeren

Je moet de benodigde bibliotheken importeren, zoals Pandas en Selenium.

van selenium importeer webdriver 
importeer pandas als pd 
uit selenium.webdriver.common.by importeer By 
uit selenium.webdriver.support.ui importeer WebDriverWait 
uit selenium.webdriver.support importeer expected_conditions als EC

De driver instellen

Je moet Youtube openen in je browser. Typ de categorie in waarvoor je video's wilt zoeken en stel het filter in op "video's". Je krijgt video's te zien die gerelateerd zijn aan je zoekopdracht. Nu moet je de URL kopiëren.

Je moet het stuurprogramma zo instellen dat het de inhoud van de URL van Youtube ophaalt.

stuurprogramma = webdriver.Chrome() 
stuurprogramma.get("UW_LINK_HIER")
Plak nu de link in de functie driver.get("YOUR_LINK_HERE"). Voer de cel uit en er wordt een nieuw browservenster geopend voor die link. Je moet de videolinks ophalen die op die specifieke pagina staan. Je kunt een lijst maken om die links op te slaan. Daarna moet je naar het browservenster gaan en het volgende doen.
  • Klik met de rechtermuisknop op de pagina.
  • Selecteer het element "Inspecteren".
Je moet zoeken naar de anchor tag met id = "video-title. Klik er met de rechtermuisknop op -> Kopiëren -> XPath. Het XPath zal er ongeveer zo uitzien:
//*[@id=”video-title”]

Je kunt de onderstaande code gebruiken om het "href"-attribuut op te halen van de anchor-tag waarnaar je hebt gezocht.

user_data = driver.find_elements_by_xpath('//*[@id="video-title"]')
links = []
voor i in user_data:
            links.append(i.get_attribute('href'))

 print(len(links))

Een DataFrame maken

Je moet een dataframe maken met de onderstaande vier kolommen.

  • link
  • titel
  • beschrijving
  • categorie

In deze kolommen kun je de details van de video's voor verschillende categorieën opslaan.

df = pd.DataFrame(kolommen = ['link', 'titel', 'beschrijving', 'categorie'])

Je bent klaar om de videodetails van Youtube te scrapen met de onderstaande code van Python.

wait = WebDriverWait(stuurprogramma, 10)
v_category = "CATEGORY_NAME".
voor x in links:
            driver.get(x)
            v_id = x.strip('https://www.youtube.com/watch?v=')
            v_title = wait.until(EC.presence_of_element_located(
                           (By.CSS_SELECTOR,"h1.title yt-format-string"))).text
            v_description = wait.until(EC.presence_of_element_located(
                                         (By.CSS_SELECTOR,"div#description 
                                         yt-opgemaakte-string")).tekst
            df.loc[len(df)] = [v_id, v_title, v_description, v_category].

Hier,

  • wait negeert gevallen van NotFoundException die standaard voorkomen in de voorwaarde "until". 
  • De parameters van de wacht functie zijn:
    • driver - Dit is de WebDriver-instantie die moet worden doorgegeven aan de verwachte voorwaarden.
    • timeOutInSeconds - Dit is de time-out wanneer de verwachting wordt aangeroepen.
  • v_category wordt gebruikt om de categorie_naam van de video op te slaan.
  • We hebben de for-lus toegepast voor de lijst met links die hierboven is gemaakt.
  • stuurprogramma.get(x) voert de volgende functies uit:
    •  doorloopt alle links één voor één
    • opent ze in de browser om de details op te halen
  • v_id wordt gebruikt om de gestripte video-ID van de link op te slaan.
  • v_title slaat de videotitel op die is opgehaald met CSS_SELECTOR
  • Op dezelfde manier slaat v_description de videobeschrijving op met CSS_SELECTOR

We zullen dezelfde stappen volgen voor de overige categorieën. We hebben vier verschillende dataframes en die voegen we samen tot één dataframe. Op deze manier zal ons uiteindelijke dataframe de gewenste details van de video's uit alle bovengenoemde categorieën bevatten.

frames = [df_travel, df_science, df_food, df_manufacturing]
df_copy = pd.concat(frames, axis=0, join='outer', join_axes=None, ignore_index=True, keys=None, levels=None, names=None, verify_integrity=False, copy=True)

Een Proxy gebruiken om Youtube-video's te scrapen

Je kunt Youtube proxies gebruiken voor de volgende taken:

  • Schrapen - Je kunt videotitels, commentaren en andere informatie verzamelen met behulp van een proxy. Je kunt ook een proxy gebruiken om Youtube-video's te scrapen die binnen het Creative Commons-domein vallen. Daarom kun je video's aan je website toevoegen zonder Youtube als officiële speler te gebruiken.
  • Youtube deblokkeren - Veel bedrijven proberen om politieke of andere redenen hun inhoud te verbergen voor het publiek. Met behulp van proxies kunt u Youtube-inhoud uploaden en bekijken vanaf een locatie waar uw toegang beperkt is. Proxies helpt u toegang te krijgen tot Youtube-video's die uw school of werkplek heeft geblokkeerd.

residentiële proxies zijn de beste proxies voor Youtube in vergelijking met datacenter proxies. Dat komt omdat het datacenter proxies gemakkelijk wordt gedetecteerd en je veel Captcha's onder ogen moet zien als je ze gebruikt. Dus, om IP-blokkering en Captcha's te vermijden, is residentiële proxies het meest geschikt voor Youtube automatisering.

Waarom Proxies gebruiken voor het scrapen van Youtube?

Je weet dat Youtube gevuld is met miljarden waardevolle gegevens. Je kunt deze gegevens analyseren en gebruiken om veel dingen te doen, zoals:

  • Zakelijke beslissingen nemen
  • Marketingbeslissingen
  • Sociaal onderzoek en studies

Je hebt proxies nodig bij het scrapen van Youtube. De reden hiervoor is dat Youtube geavanceerde cyberbeveiligingstechnieken gebruikt die detecteren wanneer je meerdere items probeert te kopen vanaf één IP-adres. Om de detectie te omzeilen, moet je je internetverkeer omleiden via verschillende proxy servers. Op deze manier lijkt het alsof het netwerkverkeer van verschillende computers komt.

Proxies fungeren ook als schild voor marketeers die Youtube-bots gebruiken om het aantal weergaven van een video te verhogen, het Youtube-rankingalgoritme te manipuleren en inkomsten uit advertenties te claimen.

Wat is de beste Proxy om YouTube-video's te scrapen?

ProxyScrape is een van de populairste en betrouwbaarste proxy providers online. Drie proxy services omvatten dedicated datacenter proxy servers, residentiële proxy servers en premium proxy servers. Dus, wat is de beste proxy om YouTube video's te scrapen? Voordat je die vraag beantwoordt, kun je het beste eerst de functies van elke proxy server bekijken.
Een dedicated datacenter proxy is het meest geschikt voor snelle online taken, zoals het streamen van grote hoeveelheden gegevens (qua grootte) vanaf verschillende servers voor analysedoeleinden. Dit is een van de belangrijkste redenen waarom organisaties kiezen voor dedicated proxies voor het verzenden van grote hoeveelheden gegevens in korte tijd.

Een dedicated datacenter proxy heeft verschillende functies, zoals onbeperkte bandbreedte en gelijktijdige verbindingen, dedicated HTTP proxies voor eenvoudige communicatie en IP-authenticatie voor meer beveiliging. Met 99,9% uptime kunt u er zeker van zijn dat het dedicated datacenter altijd werkt tijdens elke sessie. Last but not least, ProxyScrape biedt een uitstekende klantenservice en zal je helpen om je probleem binnen 24-48 kantooruren op te lossen. 

De volgende is een residentiële proxy. residentiële is een go-to proxy voor elke algemene consument. De belangrijkste reden hiervoor is dat het IP-adres van een residentiële proxy lijkt op het IP-adres van de ISP. Dit betekent dat het verkrijgen van toestemming van de doelserver om toegang te krijgen tot zijn gegevens gemakkelijker zal zijn dan normaal. 

De andere functie van ProxyScrape's residentiële proxy is een roterende functie. Een roterende proxy helpt je een permanente ban op je account te voorkomen omdat je residentiële proxy dynamisch je IP-adres verandert, waardoor het voor de doelserver moeilijk is om te controleren of je een proxy gebruikt of niet. 

Afgezien daarvan zijn de andere kenmerken van een residentiële proxy : onbeperkte bandbreedte, samen met gelijktijdige verbinding, toegewijde HTTP/s proxies, proxies op elk moment sessie vanwege 7 miljoen plus proxies in de proxy pool, gebruikersnaam en wachtwoord authenticatie voor meer veiligheid, en last but not least, de mogelijkheid om de landserver te wijzigen. Je kunt de gewenste server selecteren door de landcode toe te voegen aan de gebruikersnaamauthenticatie. 

De laatste is de premium proxy. Premium proxies zijn hetzelfde als dedicated datacenter proxies. De functionaliteit blijft hetzelfde. Het belangrijkste verschil is de toegankelijkheid. In premium proxies wordt de lijst proxy (de lijst die proxies bevat) beschikbaar gemaakt voor elke gebruiker op ProxyScrape's netwerk. Daarom kost premium proxies minder dan dedicated datacenter proxies.
Dus, wat is het beste proxy om YouTube-video's te scrapen?? Het antwoord zou zijn "residentiële proxy." De reden is eenvoudig. Zoals hierboven gezegd, is de residentiële proxy een roterende proxy, wat betekent dat je IP-adres dynamisch zou veranderen over een periode van tijd, wat handig kan zijn om de server te misleiden door het verzenden van veel verzoeken binnen een klein tijdsbestek zonder een IP-blokkering te krijgen. 

Vervolgens kun je het beste de proxy server wijzigen op basis van het land. Je hoeft alleen maar de ISO_CODE van het land toe te voegen aan het einde van de IP-authenticatie of de authenticatie met gebruikersnaam en wachtwoord. 

Aanbevolen lectuur:

FAQ's:

1. Hoe YouTube-video's scrapen met Python?

Je kunt YouTube video's scrapen met behulp van een python bibliotheek genaamd selenium (scrape automatisch de gegevens van YouTube) en pandas (slaat de geschraapte gegevens op in een dataframe formaat). Je hebt de laatste versie van het webstuurprogramma nodig om YouTube-video's te scrapen.

2. Is het legaal om YouTube-video's te scrapen?

Het is legaal om alle openbaar beschikbare gegevens van YouTube te scrapen zolang je met je scrapmethode of -aanpak de eigenaar van de website of de inhoud in geen enkele vorm schade toebrengt.

3. Is de YouTube API beschikbaar voor normale gebruikers?

Ja, YouTube biedt zijn API gratis aan normale gebruikers aan. Je kunt het gebruiken om rechtstreeks te communiceren met de YouTube-servers zonder problemen om toegang te krijgen.

Laatste gedachten over het scrapen van YouTube-video's met Python:

Voor organisaties en Youtube-creators die hun accounts beheren, bevat Youtube veel nuttige gegevens die kunnen worden geschraapt voor analyse. Youtube scrapers extraheren gegevens met betrekking tot views, likes/dislikes, comments en meer, waardoor het gemakkelijker wordt om betere zakelijke beslissingen te nemen. Je kunt Youtube-video's scrapen met Selenium en Python en veel tijd besparen. Het gebruik van proxies is belangrijk omdat je account geblokkeerd kan raken als Youtube meerdere verzoeken vanaf één IP-adres detecteert. De beste proxies voor Youtube zijn residentiële proxies , omdat ze supersnel zijn en niet gemakkelijk gedetecteerd kunnen worden.

Ik hoop dat je nu begrijpt hoe je Youtube-video's kunt scrapen met Python.