Come fare web scraping con Python

Nel linguaggio Python c'è un'apposita libreria di funzioni (modulo) per fare web scraping. Si chiama BeautifulSoup (o Bs4).

Nota. Il modulo BeautifulSoup non è tra quelli predefiniti di Python. Quindi, per usarlo va prima installato con PIP.

    Un esempio pratico

    Questo semplice programma legge il contenuto di una pagina web ed estrapola le intestazioni header <H2> presenti nel codice Html.

    1. from urllib.request import urlopen
    2. from bs4 import BeautifulSoup
    3. html = urlopen("/seo/web-scraping")
    4. Obj = BeautifulSoup(html.read())
    5. tag = Obj.findAll("h2")
    6. for i in tag:
    7. print(i)

    Come funziona?

    Nella riga 1 importo la funzione urlopen() che serve per leggere il contenuto della pagina web.

    from urllib.request import urlopen

    Nella riga 2 importo il modulo BeautifulSoup.

    from bs4 import BeautifulSoup

    Nella riga 3 indico l'indirizzo url della pagina web da scaricare nella funzione urlopen() e salvo il contenuto della pagina nella variabile html.

    In questo caso analizzo una pagina di questo sito. Qualsiasi altra pagina è lo stesso.

    html = urlopen("/seo/web-scraping")

    Nella riga 4 uso la funzione html.read() di BeautifulSoup per analizzare il contenuto testuale presente nella variabile html.

    Poi salvo il risultato nella variabile Obj.

    Obj = BeautifulSoup(html.read())

    Nella riga 5 uso la funzione findAll() di BeautifulSoup per selezionare i tag <H2> presenti nella pagina web e salvo il risultato nella variabile-array tag.

    tag = Obj.findAll("h2")

    Infine, nelle righe 6 e 7 uso una semplice struttura iterativa per leggere e stampare il contenuto della variabile-array tag.

    for i in tag:
    print(i)

    L'output del programma è il seguente:

    <h2>A cosa serve lo scraping</h2>
    <h2>Gli aspetti legali del web scraping</h2>
    <h2>Come fare scraping di un sito web</h2>

    Il programma ha estrapolato in modo corretto tutti i tag header <h2> presenti nella pagina web all'indirizzo www.andreaminini.com/seo/web-scraping.

    un esempio di scraping

    A questo punto basta modificare il programma per estrapolare qualsiasi altro tag html.

    Alcuni miglioramenti

    Il programma precedente visualizza tutto ciò che è compreso tra i tag <H2> inclusi.

    <h2>A cosa serve lo scraping</h2>
    <h2>Gli aspetti legali del web scraping</h2>
    <h2>Come fare scraping di un sito web</h2>

    Per estrapolare solo il testo ed eliminare i tag basta usare il metodo predefinito .text sulla variabile.

    for i in tag:
    print(i.text)

    L'output del programma diventa

    A cosa serve lo scraping
    Gli aspetti legali del web scraping
    Come fare scraping di un sito web

    In questo modo i tag <H2> non si vedono più.

    E così via.

     


     

    Segnalami un errore, un refuso o un suggerimento per migliorare gli appunti

    FacebookTwitterLinkedinLinkedin
    knowledge base

    Web Scraping