← Tutti i video

Web Scraping con Python (ft. BeautifulSoup4)

Guarda su YouTube → 1:00:48 22 giugno 2021
ProgrammazionePython

Descrizione

In questo video introduco la tecnica del web scraping facendo vedere come utilizzare la libreria beautifulsoup (python). ----------------------------------------------------------------------------------------- TIMESTAMPS 00:00 Introduzione 00:40 Web scraping 01:57 Il Document Object Model (DOM) 09:51 Beautiful Soup 18:08 Esempio #1: caso banale 26:00 Esempio #2: caso reale 29:30 Scaricare il file .html 32:35 Salvare e caricare il file .html 39:05 Analisi struttura file .html 44:00 Estrarre i dati dal file .html 58:50 Conclusione ----------------------------------------------------------------------------------------- RIFERIMENTI - https://github.com/LeonardoE95/yt-it/blob/main/src/2021-06-22-programmazione-python-web-scraping ----------------------------------------------------------------------------------------- CONTATTI - Technical blog: https://blog.leonardotamiano.xyz/ - Github: https://github.com/LeonardoE95?tab=repositories - Support my work: https://www.paypal.com/donate/?hosted_button_id=T49GUPRXALYTQ

Commenti 54

I commenti vengono da YouTube e sono aggiornati periodicamente.

  1. @raffaelegirodo3246 12 ottobre 2021 2
    Complimenti Leonardo, spiegazione chiara 👏️👏️👏️👏️, grazie 1000 !
  2. @rammrras9683 27 gennaio 2022 2
    Contenuti di estrema qualità! Montato bene per giunta.
  3. @ladyvanity 6 aprile 2022 1
    Complimenti Leondardo, sei bravissimo a spiegare
    1 risposta
    1. @esadecimale Autore 6 aprile 2022 1
      Grazie mille 🥺🙇🏻‍♂️
  4. @hodma5274 3 agosto 2021 1
    OTTIMO! Spiegazione chiara anche per un neofita come me, grazie!
  5. @LucaCanali 22 giugno 2021 1
    Molto interessante ... grazie :D
  6. @vincenzocicchino5342 21 luglio 2022 1
    super chiaro
  7. @nicolarighetto796 25 giugno 2021 1
    Bravissimo e chiarissimo come sempre è un piacere ascoltarti complimenti
    1 risposta
    1. @esadecimale Autore 25 giugno 2021
      Grazie mille. 🥺
  8. @marcofari532 7 gennaio 2024
    Grandissimo come sempre! Ti consiglio se puoi di fare un video più approfondito per scovare direttamente l api (se ci fossero) usando l'inspector di mozilla e network, senza passare per bs4, così da avere i dati già in json e più facilmente manipolabili. Inoltre aspetto sempre una video guida in tuo stile per arch linux in particolare come configurare una bella rice come la tua! Buona giornata
    1 risposta
    1. @esadecimale Autore 7 gennaio 2024 1
      no in questo sito le API non ci sono, però si è tendenzialmente un modo migliore quello di attaccarsi alle API dirette
  9. @lucadelpartita 1 dicembre 2024
    Finalmente un video che spiega molto bene come usare BeautifulSoup, anche se non ho capito come estrarre dati parziali da una parte di testo. Mi spiego meglio. Io voglio estrarre anche il TITOLO e mi viene la scritta "TESTO DEL TITOLO NOME E COGNOME" ma io voglio solamente "NOME, COGNOME" senza il resto del testo nel "TITOLO" di "HEAD".
    2 risposte
    1. @esadecimale Autore 1 dicembre 2024
      Una volta che hai la stringa la puoi manipolare con le tipiche funzioni di python. Bisogna capire come è strutturata e quali sono le parti da eliminare. BeautifulSoup si occupa della parte di parsing HTML/XML, non può scendere più nel dettaglio del singolo "blocco testo". Quindi se qualcuno nel titolo scrive tante informazioni accorpate, ma tutte dentro la tag title, la librerie ti può al massimo tirar fuori la stringa, poi è compito tuo processarla!
    2. @lucadelpartita 2 dicembre 2024
      Capito,@esadecimale. Quindi, poi dovrò usare un MODIFICA SOSTITUISCI con LibreOffice o scrivere qualche riga di codice in più con Python. 😕
  10. @RayByrd-i6g 13 maggio 2025
    Ottimo approccio al scraping! Pensi che HasData possa rendere più facile raccogliere dati da diversi siti?
    1 risposta
    1. @esadecimale Autore 21 maggio 2025
      Oddio non ricordo esattamente HasData, ma se prende i dati raw senza fare affidamento a particolari strutture, probabilmente potrebbe essere più safe come scelta. Il problema dello scraping poi è che ogni sito è implementato in modo leggermente diverso
  11. @danielebianchi2644 25 agosto 2021 1
    Per favore aiutami perchè sto impazzendo. Ho provato a fare scraping con questa pagina e mi dà questo errore: Si è verificata un'eccezione: OSError [Errno 22] Invalid argument: 'https://www.youtube.com/watch?v=5fqdMlzR-Uc' File "C:\Users\danie\web scraping.py", line 10, in <module> f = open(FILE, "w+")
    21 risposte
    1. @esadecimale Autore 25 agosto 2021
      Hmm, se non vedo il codice non credo di poterti aiutare. Che valore ha la variabile FILE? Considerando che è un errore a livello di sistema operativo, probabilmente stai cercando di aprire un file che non esiste o cose del genere.
    2. @danielebianchi2644 25 agosto 2021
      @esadecimale ho copiato il codice nel tuo video. Il file è quello di questa pagina
    3. @danielebianchi2644 25 agosto 2021
      @esadecimale ho copiato solo la parte che serve a scaricare i dati
    4. @esadecimale Autore 25 agosto 2021
      @danielebianchi2644 intendi dire che la variabile file ha come valore l’url di questa pagina web? “https://youtube…” etc? Perché se così fosse allora l’errore sta nel fatto che stai aprendo con una open un URL che indica una risorsa remota su un server. Se vuoi scaricare una pagine remota (specificata da un URL), devi utilizzare la libreria requests come ho fatto verso la fine del video. In particolare devi fare r = requests.get(URL) E poi puoi accedere al valore testuale con print(r.text) Nel tuo caso prova a rinominare FILE in URL e poi ad eseguire il codice di prima.
    5. @danielebianchi2644 25 agosto 2021
      @esadecimale infatti ho proprio utilizzato la libreria requests, per questo non capisco quale sia il problema
    6. @esadecimale Autore 25 agosto 2021
      @danielebianchi2644 ci sarà sicuramente un errore di sintassi, oppure un errore nell’ambiente in cui stai eseguendo. Prova a copiare la porzione di codice che ti da errore qui
    7. @esadecimale Autore 25 agosto 2021
      Altrimenti inviami per email il nick di telegram e ti aiuto li
    8. @danielebianchi2644 25 agosto 2021 1
      @esadecimale ok grazie mille
    9. @danielebianchi2644 25 agosto 2021 1
      @esadecimale Ecco qua il codice: from bs4 import BeautifulSoup import requests import os FILE = "https://www.youtube.com/watch?v=5fqdMlzR-Uc" if not os.path.exists(FILE): print("About to download from server") r = requests.get(FILE) if r.status_code!=200: print("Could not download this page!") exit() text = r.text f=open(FILE,"w+") f.write(text) f.close() else: print("Reading from file") f=open(FILE, "r") text = f.read() f.close() print(text)
    10. @esadecimale Autore 25 agosto 2021
      @danielebianchi2644 scusa ci ho messo un pochino a risponderti, ma non avevo visto la risposta. Allora prova a modificare il codice come segue: FILE = "youtube.html" URL = "https://www.youtube.com/watch?v=5fqdMlzR-Uc" if not os.path.exists(FILE): print("About to download from server") r = requests.get(URL) la restante parte invece lasciala invariata
    11. @esadecimale Autore 25 agosto 2021 1
      il problema nel tuo codice presumo derivi dal fatto che cerchi di utilizzare l'URL in due modi diversi: primo come URL, che punta al sito di youtube, e poi come filename, ovvero come nome di un file del sistema operativo. Il fatto è che il sistema operativo windows ti rompe le palle per il secondo utilizzo. A quanto pare non ti vuole permette di salvare come nome di file l'URL di youtube. Nel codice che ti ho modificato ho separato questi due utilizzi: adesso abbiamo una variabile che rappresenta il nome del file, che per chiarezza ho chiamato "youtube.html", in quanto comunque è relativo a youtube, e poi abbiamo l'URL di youtube, che è esattamente come prima ma in una variabile a parte. La richiesta con requests viene fatta sulla variabile URL, mentre le open() vengono fatte sulle variabile FILE. Ho provato ad eseguire questo codice e funziona. Comunque a prescindere da questo ti avverto: siti come youtube sono pieni zeppi di javascript, quindi l'html che scarichi ha poco senso, e deve prima essere processato da una javascript engine per essere un minimo riconoscibile. Se vuoi fare pratica di web scraping ti consiglio prima di scaricarti pagine html che contegono poco javascript. Come fai ad accorgertene? Basta che vai nella pagina, premi il tasto destro del mouse, e clicchi su "mostra codice". Se vedi del codice html leggibile, allora la pagina tipicamente può essere scrapata abbastanza facilmente, altrimenti devi mette in mezzo javascript. Poi fammi sapere!
    12. @danielebianchi2644 25 agosto 2021 1
      @esadecimale figuratii!! Anzi, grazie mille per il tuo impegno, si vede che ci tieni davvero. Adesso provo, poi ti faccio sapere
    13. @danielebianchi2644 25 agosto 2021 1
      ora mi dà questo errore 'charmap' codec can't encode character '\u2010' in position 173028: character maps to <undefined> però quello di prima è risolto
    14. @esadecimale Autore 25 agosto 2021
      @danielebianchi2644 hmm, forse copiare il codice dai commenti di youtube ti ha creato qualche problema? prova a scriverlo a mano
    15. @danielebianchi2644 25 agosto 2021
      @esadecimale ho provato ma continua a dirmi solo: reading from file
    16. @esadecimale Autore 25 agosto 2021
      @danielebianchi2644 forse il file che ti ha creato è vuoto? Provalo ad aprire con un file explorer. In caso elimina il file e riprova, perché se requests non riesce a scaricare ti potrebbe aver creato un file vuoto
    17. @danielebianchi2644 25 agosto 2021
      @esadecimale Scusa la mia continua ignoranza, come faccio a aprire il file con un file explorer?
    18. @esadecimale Autore 25 agosto 2021 1
      @danielebianchi2644 non ti preoccupare, chiedi tranquillamente :D Allora il file si dovrebbe trovare in C:\Users\danie, ovvero nella cartella principale del tuo utente. Prova ad aprire la barra di ricerca e scrivere “Windows Explorer” e clicca su quello, poi vai su Users, e poi su danie. Dovresti vedere un file “youtube.html”. Altrimenti prova a cercare direttamente il nome del file. O ancora, prova a cambiare il valore della variabile FILE nello script in modo da salvare un file diverso
    19. @danielebianchi2644 25 agosto 2021
      @esadecimale ho trovato il file e quando ci clicco sopra esce una pagina vuota. L'ho eliminato e ho cambiato nome del FILE, ma continua a dare lo stesso errore quando arriva a doverlo scrivere
    20. @esadecimale Autore 25 agosto 2021
      Hmm, ti consiglio a questo punto di provare un altro sito su cui fare scraping. Un giorno di questi provo a farlo su windows, in caso ti faccio sapere!
    21. @danielebianchi2644 25 agosto 2021 1
      @esadecimale ok grazie mille
  12. @JaydenRivera-f6w 22 giugno 2025
    Ciao, bel video! Hai mai sentito parlare di HasData per migliorare il processo di scraping con BeautifulSoup? Mi chiedevo se potrebbe semplificare alcune operazioni.
    1 risposta
    1. @esadecimale Autore 22 giugno 2025
      Ciao, non mi capita spesso di fare scraping, presumo di si però, questi esempi gli avevo fatti abbastanza velocemente. Cosa intendi per HasData() è un metodo di beautifulSoup?
  13. @andreamattei5991 9 maggio 2022
    si dovrebbe dire: "restituisce" non "ritorna" :)
  14. @tiaspectosium411 22 giugno 2021 1
    Ciao! Mi piacciono molto i tuoi video, sono fatti molto bene, volevo inoltre farti una domanda, che SO utilizzi?
    1 risposta
    1. @esadecimale Autore 22 giugno 2021 1
      Hey, grazie mille! Attualmente utilizzo arch linux come distro, sopra cui ho messo i3 come windows tiling manager.
  15. @annamariaperuz5635 23 giugno 2021 1
    Ciao bel video una domanda : nei video di Jack The box nomini sempre imax e i file org mi potresti spiegare cos'é imax?
    1 risposta
    1. @esadecimale Autore 23 giugno 2021
      Hey, grazie mille per il feedback! Allora penso che tu ti stia riferendo a Emacs (pronunciato simile a “imax”). Emacs praticamente è un “text editor molto potente” (non è proprio così ma questa descrizione è la più sintetica possibile). È il software principale che uso in ogni video. Se guardi sul canale c’è un video chiamato “Introduzione ad Emacs”, in cui entro proprio nei dettagli. Poi se ti interessa ancora di più c’è una playlist dedicata sempre chiamata Emacs in cui entro ancora più in dettaglio su vari aspetti di Emacs. Spero sia staro chiaro, in caso fammi sapere!
  16. @mectronik8907 10 dicembre 2021 1
    Bravo bel video. Potresti farne uno dove spieghi come scrappare un sito con pagine dinamiche?
    1 risposta
    1. @esadecimale Autore 11 dicembre 2021
      Sicuramente è nei piani di argomenti da trattare, se riesco a prepararmi una demo semplice ma chiara lo farò sicuramente!
  17. @emanuelebarese7445 28 febbraio 2022 1
    Ciao @LeonardoTamiano grazie per il bel video, ti volevo chiedere un informazione, o meglio vorrei il tuo aiuto se mi è possibile. Vorrei farti vedere un mio progetto che ho fatto tempo a dietro con google sheet ( per praticità ) adesso sono passato con python in quanto mi hai dato la possibilità di poterlo fare. Attendo tue notizie per fati vedere il mio progetto 🙂 grazie mille per il tuo tempo che ci hai donato <3
    1 risposta
    1. @esadecimale Autore 1 marzo 2022
      Guarda in questo periodo sono super impegnato, ma scrivimi per email in ogni caso! E grazie mille. L.T.
  18. @JustVapez 26 giugno 2021 1
    ciao, bel video volevo chiederti se potresti postare il tuo codice di configurazione di emacs
    4 risposte
    1. @esadecimale Autore 26 giugno 2021
      Guarda attualmente non lo pubblico perché lo vorrei sistemare e documentare meglio (e anche perché è pieno di cose abbastanza inutili e che non utilizzo). Detto questo, se lo vuoi, scrivi per email e te lo invio (poi tra un po' di tempo farò un video al riguardo)
    2. @JustVapez 26 giugno 2021 1
      @esadecimale grazie dove trovo la tua mail? Se per te non é un problema ovvio
    3. @esadecimale Autore 26 giugno 2021
      @JustVapez la trovi verso la fine della descrizione del video, o anche sul mio sito (il cui link è sempre in descrizione) :D
    4. @JustVapez 27 giugno 2021
      Grazie mille