ciemne logo proxyscrape

Skrobanie filmów z YouTube za pomocą Pythona - łatwe podejście w 2024 roku

Jak to zrobić, Python, Scraping, Dec-05-20225 minut czytania
YouTube jest drugą po Google najpopularniejszą wyszukiwarką na świecie. Jest to usługa udostępniania wideo, w której użytkownicy mogą oglądać, udostępniać, polubić, komentować i przesyłać filmy. Jest domem dla vlogerów, treści informacyjnych, filmów edukacyjnych i wielu innych danych. Niektóre z głównych funkcji Youtube to:
  • Wyszukiwanie i oglądanie filmów
  • Tworzenie osobistego kanału Youtube
  • Przesyłanie filmów na swój kanał
  • Subskrybowanie innych kanałów i użytkowników
  • Polubienie i udostępnianie innych filmów na Youtube
  • Tworzenie list odtwarzania w celu organizowania filmów razem

Za pomocą skrobania stron internetowych można wyodrębnić dane z Youtube i przynieść korzyści swojej organizacji, uzyskując cenne spostrzeżenia z tych danych. Kiedy uczysz się wyodrębniać dane z Youtube, ważne jest, aby wiedzieć, jakiego rodzaju dane chcesz uzyskać. Na przykład, jeśli chcesz poznać reakcje ludzi na twoją pracę, możesz zeskrobać sekcję komentarzy w celu analizy nastrojów użytkowników. Podobnie, jeśli chcesz śledzić sukces filmu, możesz zeskrobać dane dotyczące wydajności wideo. 

Zanim dowiemy się, jak skrobać filmy z YouTube, dowiedzmy się, dlaczego musimy je skrobać.

Spis treści

Dlaczego warto skrobać filmy na Youtube?

Poniżej wymieniono dwa główne powody skrobania danych z YouTube.

  • Dane dotyczące wydajności wideo - Kiedy publikujesz filmy informacyjne dla marki, ważne jest, aby śledzić, jak reagują na nie Twoi odbiorcy. Skrobanie strony dla konkretnego filmu pomoże ci uzyskać liczbę wyświetleń, polubień, komentarzy, subskrybentów kanału i nie tylko. Należy pamiętać o stosunku każdego z tych wskaźników. Na przykład, film może mieć miliony wyświetleń i mieć więcej niechęci niż polubień. Liczba wyświetleń nie świadczy o tym, że film jest lubiany lub wysokiej jakości. Zamiast tego stosunek wyświetleń do polubień może być formą analizy sentymentu.
  • Dane kanału - podczas skrobania strony kanału Youtube można uzyskać dane związane z listami odtwarzania, liczbą filmów, subskrybentami i nie tylko. Co więcej, skrobanie stron konkurencyjnych kanałów jest przydatne i pouczające, aby lepiej zrozumieć, czy Twój kanał jest na tym samym poziomie wpływu, co ich. 
  • Osiągnij automatyzację - Solidne skrobaki internetowe automatycznie pozwalają wyodrębniać dane z Youtube. Oszczędza to czas, ponieważ można zbierać dane w większej ilości niż człowiek może kiedykolwiek osiągnąć. 
  • Business Intelligence i Insights - można uzyskać lepszy obraz działalności konkurencji poprzez pobieranie, czyszczenie i analizowanie danych w znacznych ilościach, co prowadzi do lepszego podejmowania decyzji biznesowych.

Skrobanie filmów z YouTube przy użyciu Pythona

Zobaczmy, jak wyodrębnić dane wideo z Youtube za pomocą Selenium i Pythona. Selenium jest popularnym narzędziem do automatyzacji przeglądarek internetowych. Możesz łatwo zaprogramować skrypt Pythona do automatyzacji przeglądarki internetowej za pomocą Selenium. 

Selenium wymaga sterownika do połączenia z wybraną przeglądarką. Na przykład Chrome wymaga sterownika ChromeDriver, który należy zainstalować przed rozpoczęciem skrobania.

Konfiguracja środowiska Python

Krok 1 - Należy otworzyć terminal i zainstalować Selenium za pomocą poniższego polecenia.
$ pip install selenium
Krok 2 - Należy pobrać Chrome WebDriver, wykonując poniższe czynności.
Krok 3 - Musisz przenieść plik sterownika do PATH.

Musisz przejść do katalogu pobierania i wykonać następujące czynności.

  • Rozpakuj plik.
  • Przenieś go do usr/local/bin PATH.
$ cd Downloads
$ unzip chromedriver_linux64.zip
$ mv chromedriver /usr/local/bin/

Skrobanie filmów z YouTube

Będziemy pobierać identyfikator wideo, tytuł i opis konkretnej kategorii z Youtube. Kategorie, które możemy pobrać są następujące:

  • Nauka
  • Żywność
  • Podróż
  • Produkcja itp.

Import bibliotek

Należy zaimportować niezbędne biblioteki, takie jak Pandas i Selenium.

z selenium import webdriver 
import pandas as pd 
from selenium.webdriver.common.by import By 
from selenium.webdriver.support.ui import WebDriverWait 
from selenium.webdriver.support import expected_conditions as EC

Konfiguracja sterownika

Musisz otworzyć Youtube w swojej przeglądarce. Wpisz kategorię, w której chcesz wyszukiwać filmy i ustaw filtr na "filmy". Otrzymasz filmy związane z wyszukiwaną kategorią. Teraz musisz skopiować adres URL.

Musisz skonfigurować sterownik, aby pobierał zawartość adresu URL z Youtube.

driver = webdriver.Chrome() 
driver.get("YOUR_LINK_HERE")
Teraz wklej link do funkcji driver.get("YOUR_LINK_HERE"). Uruchom komórkę, a otworzy się nowe okno przeglądarki dla tego linku. Musisz pobrać linki wideo znajdujące się na tej konkretnej stronie. Możesz utworzyć listę do przechowywania tych linków. Następnie należy przejść do okna przeglądarki i wykonać następujące czynności.
  • Kliknij stronę prawym przyciskiem myszy.
  • Wybierz element "Sprawdź".
Musisz wyszukać znacznik kotwicy z id = "video-title". Kliknij go prawym przyciskiem myszy -> Kopiuj -> XPath. Ścieżka XPath będzie wyglądać mniej więcej tak:
//*[@id=”video-title”]

Możesz użyć poniższego kodu, aby pobrać atrybut "href" wyszukiwanego tagu kotwicy.

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

 print(len(links))

Tworzenie ramki danych

Należy utworzyć ramkę danych z poniższymi czterema kolumnami.

  • link
  • tytuł
  • opis
  • kategoria

W tych kolumnach można przechowywać szczegóły filmów dla różnych kategorii.

df = pd.DataFrame(columns = ['link', 'title', 'description', 'category'])

Jesteś gotowy, aby zeskrobać szczegóły wideo z Youtube za pomocą poniższego kodu Pythona.

wait = WebDriverWait(driver, 10)
v_category = "CATEGORY_NAME"
for 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-formatted-string")).text
            v_description = wait.until(EC.presence_of_element_located(
                                         (By.CSS_SELECTOR,"div#description 
                                         yt-formatted-string")).text
            df.loc[len(df)] = [v_id, v_title, v_description, v_category]

Tutaj,

  • wait ignoruje instancje wyjątku NotFoundException napotkane domyślnie w warunku "until". 
  • Parametry w czekać funkcje to:
    • driver - jest to instancja WebDriver, która ma zostać przekazana do oczekiwanych warunków.
    • timeOutInSeconds - Jest to limit czasu, w którym oczekiwanie jest wywoływane.
  • v_category służy do przechowywania nazwy kategorii wideo.
  • Zastosowaliśmy pętlę for dla listy linków utworzonej powyżej.
  • driver.get(x) wykonuje poniższe funkcje:
    •  przechodzi przez wszystkie linki jeden po drugim
    • otwiera je w przeglądarce, aby pobrać szczegóły
  • v_id służy do przechowywania identyfikatora wideo z łącza.
  • v_title przechowuje tytuł wideo pobrany za pomocą CSS_SELECTOR
  • Podobnie, v_description przechowuje opis wideo przy użyciu CSS_SELECTOR

Wykonamy te same kroki dla pozostałych kategorii. Będziemy mieć cztery różne ramki danych i połączymy je w jedną ramkę danych. W ten sposób nasza ostateczna ramka danych będzie zawierać pożądane szczegóły filmów ze wszystkich kategorii wymienionych powyżej.

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)

Używanie proxy do skrobania filmów z YouTube

Serwerów proxy Youtube można używać do następujących zadań:

  • Scraping - Możesz zbierać tytuły filmów, komentarze i wszelkie informacje za pomocą serwera proxy. Możesz także użyć proxy do skrobania filmów z Youtube, które są w domenie Creative Commons. Dzięki temu możesz dodawać filmy do swojej witryny bez korzystania z Youtube jako oficjalnego odtwarzacza.
  • Odblokowanie Youtube - Wiele firm próbuje ukryć swoje treści przed opinią publiczną z powodów politycznych lub innych. Z pomocą serwerów proxy można przesyłać i oglądać treści na Youtube z lokalizacji, do której dostęp jest ograniczony. Proxy pomagają uzyskać dostęp do filmów z YouTube, które zostały zablokowane w szkole lub miejscu pracy.

Rezydencyjne serwery proxy są najlepszymi serwerami proxy dla Youtube w porównaniu do serwerów proxy centrów danych. Wynika to z faktu, że serwery proxy centrów danych są łatwo wykrywane, a podczas korzystania z nich trzeba stawić czoła wielu Captchas. Tak więc, aby uniknąć blokowania adresów IP i Captcha, proxy domowe najlepiej nadają się do automatyzacji Youtube.

Dlaczego warto używać serwerów proxy do skrobania Youtube?

Wiesz, że Youtube jest wypełniony miliardami cennych danych. Możesz analizować te dane i wykorzystywać je do wielu rzeczy, takich jak:

  • Podejmowanie decyzji biznesowych
  • Decyzje marketingowe
  • Badania i analizy społeczne

Podczas scrapowania Youtube potrzebne są serwery proxy. Dzieje się tak, ponieważ Youtube wykorzystuje zaawansowane techniki cyberbezpieczeństwa, które wykrywają próby zakupu wielu przedmiotów z jednego adresu IP. Aby ominąć wykrywanie, należy przekierować ruch internetowy przez kilka serwerów proxy. W ten sposób ruch sieciowy będzie wyglądał na pochodzący z różnych komputerów.

Proxy działają również jako tarcza dla marketerów korzystających z botów Youtube w celu zwiększenia liczby wyświetleń wideo, manipulowania algorytmem rankingu Youtube i uzyskiwania przychodów z reklam.

Który serwer proxy jest najlepszy do skrobania filmów z YouTube?

ProxyScrape jest jednym z najpopularniejszych i najbardziej niezawodnych dostawców proxy online. Trzy usługi proxy obejmują dedykowane serwery proxy w centrach danych, domowe serwery proxy i serwery proxy premium. Jaki jest więc najlepszy serwer proxy do skrobania filmów z YouTube? Zanim odpowiemy na to pytanie, najlepiej jest zapoznać się z funkcjami każdego serwera proxy.
Dedykowany serwer proxy centrum danych najlepiej nadaje się do szybkich zadań online, takich jak przesyłanie strumieniowe dużych ilości danych (pod względem rozmiaru) z różnych serwerów do celów analitycznych. Jest to jeden z głównych powodów, dla których organizacje wybierają dedykowane serwery proxy do przesyłania dużych ilości danych w krótkim czasie.

Dedykowany serwer proxy centrum danych ma kilka funkcji, takich jak nieograniczona przepustowość i jednoczesne połączenia, dedykowane serwery proxy HTTP ułatwiające komunikację oraz uwierzytelnianie IP dla większego bezpieczeństwa. Dzięki 99,9% uptime można mieć pewność, że dedykowane centrum danych będzie zawsze działać podczas każdej sesji. Wreszcie, ProxyScrape zapewnia doskonałą obsługę klienta i pomoże rozwiązać problem w ciągu 24-48 godzin roboczych. 

Następny jest mieszkaniowy serwer proxy. Residential to proxy dla każdego konsumenta. Głównym powodem jest to, że adres IP domowego serwera proxy przypomina adres IP dostarczony przez dostawcę usług internetowych. Oznacza to, że uzyskanie pozwolenia od serwera docelowego na dostęp do jego danych będzie łatwiejsze niż zwykle. 

Inną cechą domowego serwera proxy ProxyScrapejest funkcja rotacji. Rotacyjny serwer proxy pomaga uniknąć trwałego zablokowania konta, ponieważ domowy serwer proxy dynamicznie zmienia adres IP, utrudniając serwerowi docelowemu sprawdzenie, czy korzystasz z serwera proxy, czy nie. 

Oprócz tego, inne cechy proxy mieszkaniowego to: nieograniczona przepustowość, wraz z jednoczesnym połączeniem, dedykowane proxy HTTP/s, proxy w dowolnym momencie sesji ze względu na ponad 7 milionów proxy w puli proxy, uwierzytelnianie nazwy użytkownika i hasła dla większego bezpieczeństwa, a także, co nie mniej ważne, możliwość zmiany serwera krajowego. Możesz wybrać żądany serwer, dołączając kod kraju do uwierzytelniania nazwy użytkownika. 

Ostatni z nich to proxy premium. Premium proxy są takie same jak dedykowane proxy centrów danych. Funkcjonalność pozostaje taka sama. Główną różnicą jest dostępność. W przypadku proxy premium lista proxy (lista zawierająca proxy) jest udostępniana każdemu użytkownikowi w sieci ProxyScrape. Dlatego też proxy premium kosztują mniej niż dedykowane proxy centrów danych.
Jaki jest więc najlepszy proxy do skrobania filmów z YouTube?? Odpowiedź brzmi "mieszkaniowy serwer proxy". Powód jest prosty. Jak wspomniano powyżej, domowy serwer proxy jest obrotowym serwerem proxy, co oznacza, że adres IP użytkownika będzie dynamicznie zmieniany przez pewien okres czasu, co może być pomocne w oszukiwaniu serwera poprzez wysyłanie wielu żądań w krótkim czasie bez blokowania adresu IP. 

Następnie najlepiej byłoby zmienić serwer proxy na podstawie kraju. Wystarczy dodać kraj ISO_CODE na końcu uwierzytelniania IP lub uwierzytelniania nazwy użytkownika i hasła. 

Sugerowane lektury:

Najczęściej zadawane pytania:

1. Jak skrobać filmy z YouTube za pomocą Pythona?
Filmy z YouTube można skrobać za pomocą biblioteki Pythona o nazwie selenium (automatycznie skrobie dane z YouTube) i pandas (przechowuje skrobane dane w formacie ramki danych). Do skrobania filmów z YouTube potrzebna jest najnowsza wersja sterownika internetowego.
2. Czy skrobanie filmów z YouTube jest legalne?
Skrobanie publicznie dostępnych danych z YouTube jest legalne, o ile metoda lub podejście do skrobania nie wyrządza żadnej szkody właścicielowi witryny lub właścicielowi treści w jakimkolwiek kształcie lub formie.
3. Czy API YouTube jest dostępne dla zwykłych użytkowników?
Tak, YouTube oferuje swoje API zwykłym użytkownikom bezpłatnie. Można go używać do bezpośredniej interakcji z serwerami YouTube bez żadnych trudności z uzyskaniem dostępu.

Końcowe przemyślenia na temat skrobania filmów z YouTube przy użyciu Pythona:

Dla organizacji i twórców Youtube prowadzących swoje konta, Youtube zawiera wiele przydatnych danych, które można zeskrobać do analizy. Skrobaki Youtube wyodrębniają dane związane z wyświetleniami, polubieniami, komentarzami i nie tylko, ułatwiając podejmowanie lepszych decyzji biznesowych. Możesz skrobać filmy z Youtube za pomocą Selenium i Pythona i zaoszczędzić dużo czasu. Korzystanie z serwerów proxy jest ważne, ponieważ konto może zostać zablokowane, jeśli Youtube wykryje wiele żądań z jednego adresu IP. Najlepszymi serwerami proxy dla Youtube są rezydencjalne serwery proxy, ponieważ są one bardzo szybkie i nie można ich łatwo wykryć.

Mam nadzieję, że zrozumiałeś, jak skrobać filmy z Youtube za pomocą Pythona.