Raschiare i video di YouTube usando Python: un approccio semplice nel 2024

Come fare, Pitone, Scraping, Mar-06-20245 minuti di lettura

Dopo Google, YouTube è il secondo motore più popolare al mondo. È un servizio di condivisione video in cui gli utenti possono guardare, condividere, mettere mi piace, commentare e caricare video. È la casa di vlogger, contenuti informativi, video educativi e molti altri dati. Alcune delle funzioni principali di Youtube sono: Con l'aiuto del web scraping

Dopo Google, YouTube è il secondo motore più popolare al mondo. È un servizio di condivisione video in cui gli utenti possono guardare, condividere, mettere mi piace, commentare e caricare video. È la casa di vlogger, contenuti informativi, video educativi e molti altri dati. Alcune delle funzioni principali di Youtube sono:

  • Ricerca e visione di video
  • Creare un canale Youtube personale
  • Caricare i video sul proprio canale
  • Abbonamento ad altri canali e utenti
  • Condividere e apprezzare altri video di Youtube
  • Creare playlist per organizzare i video insieme

Con l'aiuto del web scraping, è possibile estrarre dati da Youtube e trarre benefici per la propria organizzazione, ricavandone preziose informazioni. Quando si impara a estrarre dati da Youtube, è importante sapere che tipo di dati si vogliono ottenere. Ad esempio, se volete conoscere le reazioni delle persone al vostro lavoro, potete analizzare la sezione dei commenti per analizzare il sentiment degli utenti. Allo stesso modo, se si vuole monitorare il successo di un video, si possono estrarre i dati sulle prestazioni del video. 

Prima di imparare come raschiare i video di Youtube, impariamo perché è necessario farlo.

Indice dei contenuti

Perché raschiare i video su Youtube?

Di seguito sono riportati i due motivi principali per cui è necessario effettuare lo scraping dei dati di Youtube.

  • Dati sulle prestazioni dei video - Quando si pubblicano video informativi per un marchio, è importante monitorare la risposta del pubblico. Scorrere la pagina di un video specifico vi aiuterà a conoscere il numero di visualizzazioni, i mi piace, i commenti, gli iscritti al canale e altro ancora. È necessario tenere presente il rapporto di ciascuna di queste metriche. Ad esempio, un video può avere milioni di visualizzazioni e avere più dislikes che likes. Il numero di visualizzazioni non è indicativo di un video apprezzato o di alta qualità. Invece, il rapporto tra visualizzazioni e like/dislikes può essere una forma di analisi del sentiment.
  • Dati sul canale - Quando si effettua lo scraping della pagina di un canale Youtube, si ottengono dati relativi alle playlist, al numero di video, agli abbonati e altro ancora. Inoltre, lo scraping delle pagine dei canali concorrenti è utile e informativo per capire meglio se il vostro canale è allo stesso livello di influenza del loro. 
  • Automazione - Robusti web scrapers consentono di estrarre automaticamente i dati da Youtube. In questo modo si risparmia tempo e si possono raccogliere dati in quantità maggiore di quanto un essere umano possa mai sperare di fare. 
  • Business Intelligence e Insights - È possibile ottenere un quadro migliore dell'attività dei concorrenti scaricando, ripulendo e analizzando i dati a volumi significativi, per migliorare il processo decisionale aziendale.

Scraping di video di Youtube con Python

Vediamo come estrarre i dati dei video di Youtube utilizzando Selenium e Python. Selenium è uno strumento popolare per automatizzare i browser web. È possibile programmare facilmente uno script Python per automatizzare un browser web utilizzando Selenium. 

Selenium richiede un driver per interfacciarsi con il browser scelto. Ad esempio, Chrome richiede un ChromeDriver che deve essere installato prima di iniziare lo scraping.

Impostazione dell'ambiente Python

Passo 1 - È necessario aprire il terminale e installare Selenium utilizzando il comando seguente.

$ pip install selenium

Fase 2 - È necessario scaricare Chrome WebDriver seguendo i passaggi indicati di seguito.

  • Dovete visitare il sito https://sites.google.com/a/chromium.org/chromedriver/download.
  • È necessario selezionare il driver compatibile con la versione di Chrome in uso.
  • È necessario verificare la versione di Chrome in uso facendo clic sui tre punti verticali nell'angolo in alto a destra.
  • Quindi, si deve andare su Aiuto -> Informazioni su Google Chrome.

Fase 3 - È necessario spostare il file del driver in un PATH.

È necessario accedere alla directory dei download e procedere come segue.

  • Decomprimere il file.
  • Spostatelo nel PATH di usr/local/bin.
$ cd Download
$ decomprimere chromedriver_linux64.zip
$ mv chromedriver /usr/local/bin/

Scraping dei video di Youtube

Scrape l'ID del video, il titolo e la descrizione di una particolare categoria da Youtube. Le categorie che possiamo analizzare sono le seguenti:

  • Scienza
  • Cibo
  • Viaggi
  • Produzione, ecc.

Importazione di librerie

È necessario importare le librerie necessarie, come Pandas e Selenium.

da selenium import webdriver 
importare pandas come pd 
da selenium.webdriver.common.by import By 
da selenium.webdriver.support.ui import WebDriverWait 
da selenium.webdriver.support import expected_conditions as EC

Impostazione del driver

Dovete aprire Youtube nel vostro browser. Digitare la categoria per la quale si desidera cercare i video e impostare il filtro su "video". Verranno visualizzati i video relativi alla ricerca. A questo punto, è necessario copiare l'URL.

È necessario impostare il driver per recuperare il contenuto dell'URL da Youtube.

driver = webdriver.Chrome() 
driver.get("IL TUO LINK_QUI")

Ora, incollate il link nella funzione driver.get("YOUR_LINK_HERE"). Eseguire la cella e si aprirà una nuova finestra del browser per quel link. È necessario recuperare i collegamenti video presenti in quella particolare pagina. È possibile creare un elenco per memorizzare tali collegamenti. Successivamente, è necessario andare nella finestra del browser e procedere come segue.

  • Fare clic con il tasto destro del mouse sulla pagina.
  • Selezionare l'elemento "Ispezione".

È necessario cercare il tag di ancoraggio con id = "video-title". Fare clic con il tasto destro del mouse su di esso -> Copia -> XPath. L'XPath sarà simile a questo:

//*[@id=”video-title”]

Recuperare i link ai video di Youtube

È possibile utilizzare il codice seguente per recuperare l'attributo "href" del tag di ancoraggio cercato.

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

 print(len(links))

Creare un DataFrame

È necessario creare un dataframe con le quattro colonne seguenti.

  • link
  • titolo
  • descrizione
  • categoria

In queste colonne è possibile memorizzare i dettagli dei video per le diverse categorie.

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

Si può procedere allo scraping dei dettagli del video di Youtube utilizzando il codice Python riportato di seguito.

wait = WebDriverWait(driver, 10)
v_categoria = "NOME_CATEGORIA"
per x in link:
            driver.get(x)
            v_id = x.strip('https://www.youtube.com/watch?v=')
            v_titolo = 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]

Qui,

  • wait ignora le istanze di NotFoundException incontrate per impostazione predefinita nella condizione "until". 
  • I parametri della funzione wait sono: driver - È l'istanza di WebDriver da passare alle condizioni di attesa.timeOutInSeconds - È il timeout quando viene chiamata l'attesa.
  • driver - È l'istanza di WebDriver da passare alle condizioni previste.
  • timeOutInSeconds - È il timeout quando viene richiamata l'aspettativa.
  • v_category è usato per memorizzare il nome della categoria video.
  • Abbiamo applicato il ciclo for per l'elenco di collegamenti creato in precedenza.
  • driver.get(x) esegue le seguenti funzioni: attraversa tutti i link uno per uno li apre nel browser per recuperarne i dettagli
  •  attraversa tutti i collegamenti uno per uno
  • li apre nel browser per recuperare i dettagli
  • v_id è usato per memorizzare l'ID video a strisce del collegamento.
  • v_title memorizza il titolo del video recuperato utilizzando CSS_SELECTOR
  • Allo stesso modo, v_description memorizza la descrizione del video utilizzando CSS_SELECTOR

Seguiremo la stessa procedura per le altre categorie. Avremo quattro diversi dataframe e li uniremo in un unico dataframe. In questo modo, il nostro dataframe finale conterrà i dettagli desiderati dei video di tutte le categorie sopra menzionate.

frames = [df_viaggi, df_scienza, df_alimentazione, df_produzione]
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)

Usare un proxy per raschiare i video di Youtube

È possibile utilizzare i proxy di Youtube per i seguenti compiti:

  • Scraping - È possibile raccogliere titoli di video, commenti e qualsiasi informazione in modo appropriato utilizzando un proxy. È inoltre possibile utilizzare un proxy per effettuare lo scraping dei video di Youtube che si trovano all'interno del dominio Creative Commons. Pertanto, è possibile aggiungere video al proprio sito web senza utilizzare Youtube come player ufficiale.
  • Sbloccare Youtube - Molte aziende cercano di nascondere i propri contenuti al pubblico per motivi politici o di altro tipo. Con l'aiuto dei proxy, è possibile caricare e guardare i contenuti di Youtube da un luogo in cui l'accesso è limitato. I proxy aiutano ad accedere ai video di Youtube che la scuola o il posto di lavoro hanno bloccato.

I proxy residenziali sono i migliori proxy per Youtube rispetto ai proxy dei centri dati. Infatti, i proxy dei datacenter vengono rilevati facilmente e si devono affrontare molti Captchas durante il loro utilizzo. Quindi, per evitare il blocco dell'IP e i Captchas, i proxy residenziali sono i più adatti per l'automazione di Youtube.

Perché usare i proxy per lo scraping di Youtube?

Sapete che Youtube contiene miliardi di dati preziosi. È possibile analizzare questi dati e utilizzarli per fare molte cose, come ad esempio:

  • Prendere decisioni aziendali
  • Decisioni di marketing
  • Studi e ricerche sociali

È necessario disporre di proxy quando si effettua lo scraping di Youtube. Questo perché Youtube impiega tecniche avanzate di cybersecurity che rilevano quando si cerca di acquistare più articoli da un singolo indirizzo IP. Per eludere il rilevamento, è necessario reindirizzare il traffico Internet attraverso diversi server proxy. In questo modo, sembrerà che il traffico di rete provenga da computer diversi.

I proxy fungono anche da scudo per gli operatori di marketing che utilizzano i bot di Youtube per aumentare il numero di visualizzazioni di un video, manipolare l'algoritmo di classificazione di Youtube e richiedere entrate dagli annunci.

Qual è il miglior proxy per raschiare i video di YouTube?

ProxyScrape is one of the most popular and reliable proxy providers online. Three proxy services include dedicated datacentre proxy servers, residential proxy servers, and premium proxy servers. So, what is the best proxy to scrape YouTube videos? Before answering that questions, it is best to see the features of each proxy server.

Un proxy dedicato per datacenter è più adatto per attività online ad alta velocità, come lo streaming di grandi quantità di dati (in termini di dimensioni) da vari server a scopo di analisi. È uno dei motivi principali per cui le organizzazioni scelgono i proxy dedicati per trasmettere grandi quantità di dati in breve tempo.

Un proxy dedicato per datacenter ha diverse caratteristiche, come la larghezza di banda illimitata e le connessioni simultanee, i proxy HTTP dedicati per facilitare la comunicazione e l'autenticazione IP per una maggiore sicurezza. Con un uptime del 99,9%, potete essere certi che il datacenter dedicato funzionerà sempre durante qualsiasi sessione. Infine, ma non meno importante, ProxyScrape fornisce un eccellente servizio clienti e vi aiuterà a risolvere i vostri problemi entro 24-48 ore lavorative. 

Il prossimo è un proxy residenziale. Quello residenziale è il proxy ideale per tutti i consumatori. Il motivo principale è che l'indirizzo IP di un proxy residenziale assomiglia all'indirizzo IP fornito dall'ISP. Ciò significa che ottenere il permesso dal server di destinazione per accedere ai suoi dati sarà più facile del solito. 

L'altra caratteristica del proxy residenziale di ProxyScrapeè la funzione di rotazione. Un proxy a rotazione vi aiuta a evitare un divieto permanente sul vostro account perché il proxy residenziale cambia dinamicamente il vostro indirizzo IP, rendendo difficile per il server di destinazione verificare se state usando un proxy o meno. 

Oltre a questo, le altre caratteristiche di un proxy residenziale sono: larghezza di banda illimitata, insieme alla connessione concorrente, proxy HTTP/s dedicati, proxy in qualsiasi sessione di tempo grazie agli oltre 7 milioni di proxy presenti nel pool di proxy, autenticazione con nome utente e password per una maggiore sicurezza e, ultimo ma non meno importante, la possibilità di cambiare il server nazionale. È possibile selezionare il server desiderato aggiungendo il codice del paese all'autenticazione del nome utente. 

L'ultimo è il proxy premium. I proxy premium sono identici ai proxy dedicati ai datacenter. La funzionalità rimane la stessa. La differenza principale è l'accessibilità. Nei proxy premium, l'elenco dei proxy (l'elenco che contiene i proxy) è reso disponibile a tutti gli utenti della rete ProxyScrape. Per questo motivo i proxy premium costano meno dei proxy dedicati ai data center.

Quindi, qual è il miglior proxy per scrappare i video di YouTube? La risposta è "proxy residenziale". Il motivo è semplice. Come detto in precedenza, il proxy residenziale è un proxy a rotazione, il che significa che il vostro indirizzo IP cambierà dinamicamente nel corso di un periodo di tempo, il che può essere utile per ingannare il server inviando molte richieste in un breve lasso di tempo senza ottenere un blocco dell'IP. 

La cosa migliore è cambiare il server proxy in base al paese. È sufficiente aggiungere il codice ISO_CODE del paese alla fine dell'autenticazione IP o dell'autenticazione con nome utente e password. 

Letture consigliate:

Raschiare i commenti di YouTube - 5 semplici passiProxy per YouTube - 3 tipi importanti e vantaggi

Domande frequenti:

1. Come raschiare i video di YouTube usando Python?
È possibile eseguire lo scraping dei video di YouTube con l'aiuto di una libreria python chiamata selenium (che esegue automaticamente lo scraping dei dati da YouTube) e pandas (che memorizza i dati scrapati in un formato dataframe). Per eseguire lo scraping dei video di YouTube è necessaria l'ultima versione del driver web.
2. È legale effettuare lo scraping dei video di YouTube?
È lecito raschiare qualsiasi dato disponibile pubblicamente da YouTube, purché il metodo o l'approccio di raschiatura non arrechi alcun danno al proprietario del sito web o al proprietario del contenuto in qualsiasi forma.
3. L'API di YouTube è disponibile per gli utenti normali?
Sì, YouTube offre gratuitamente la sua API agli utenti normali. È possibile utilizzarla per interagire direttamente con i server di YouTube senza alcuna difficoltà di accesso.

Final Thoughts on Scraping YouTube Videos Using Python:

Per le organizzazioni e i creatori di Youtube che gestiscono i loro account, Youtube contiene molti dati utili che possono essere scrapati per essere analizzati. Gli scrapers di Youtube estraggono i dati relativi alle visualizzazioni, ai mi piace, ai commenti e altro ancora, rendendo più facile prendere decisioni aziendali migliori. È possibile eseguire lo scraping dei video di Youtube utilizzando Selenium e Python, risparmiando molto tempo. L'uso dei proxy è importante perché il vostro account può essere bloccato se Youtube rileva più richieste da un singolo indirizzo IP. I migliori proxy per Youtube sono i proxy residenziali, perché sono velocissimi e non possono essere rilevati facilmente.

Spero che abbiate capito come raschiare i video di Youtube usando Python.