Python Beautifulsoup Tutorial per principianti

Python Beautifulsoup Tutorial per principianti
Web rasting è di grande importanza nel mondo di oggi. Tutti hanno bisogno di dati, da diverse fonti, comprese le pagine Web. In questo articolo, vedremo come analizzare HTML con la biblioteca di Beautifulsoup. L'estrazione di dati necessari da un mucchio di alfabeti e simboli, grazie a questa grande biblioteca, è diventato molto più facile. Beautifulsoup scritto in Python può essere facilmente installato sulla tua macchina utilizzando lo strumento di installazione PIP di Python. Il seguente comando aiuterebbe l'installazione della libreria:
PIP Installa Beautifulsoup4

Per verificare se l'installazione ha avuto successo, attiva il guscio interattivo Python e import BeautifulSoup. Se non viene visualizzato alcun errore, significa che tutto è andato bene. Se non sai come farlo, digita i seguenti comandi nel tuo terminale.

$ Python
Python 3.5.2 (impostazione predefinita, 14 settembre 2017, 22:51:06)
[GCC 5.4.0 20160609] su Linux
Digita "Help", "Copyright", "Credit" o "Licenza" per ulteriori informazioni.
>>> Importa BS4

Per lavorare con la biblioteca di Beautifulsoup, devi passare in HTML. Quando si lavora con siti Web reali, è possibile ottenere l'HTML di una pagina Web utilizzando la libreria delle richieste. L'installazione e l'uso della libreria delle richieste va oltre lo scopo di questo articolo, tuttavia potresti trovare la tua strada per aggirare la documentazione è abbastanza facile da usare. Per questo articolo, useremo semplicemente HTML in una stringa Python che chiameremmo html.

html = "" "

Profilo dei dipendenti



Nome:Dr Peter Parker
Lavoro:Ingegnere dell'apprendimento automatico
Telefono:+12345678910
E-mail:
[email protected]

Sito web:
Pparkerworks.com



"" "

Per utilizzare Beautifulsoup, lo importiamo nel codice utilizzando il codice seguente:

Da BS4 Import Beautifulsoup

Ciò introdurrebbe bellissimo spazio nel nostro spazio dei nomi e possiamo usarlo nell'analisi della nostra stringa.

Soup = BeautifulSoup (HTML, "LXML")

Ora, minestra è un oggetto di bel tipo di tipo BS4.Bellissimo e possiamo eseguire tutte le operazioni di bellissimo minestravariabile.

Diamo un'occhiata ad alcune cose che possiamo fare con Beautifulsoup ora.

Rendere il brutto, bello

Quando Beautifulsoup analizza HTML, di solito non è nei migliori formati. La spaziatura è piuttosto orribile. I tag sono difficili da trovare. Ecco un'immagine per mostrare come sarebbero quando si sta stampando il minestra:

Tuttavia, c'è una soluzione a questo. La soluzione dà all'HTML la spaziatura perfetta, facendo sembrare le cose buone. Questa soluzione è meritatamente chiamata "abbellire".

Certo, potresti non riuscire a utilizzare questa funzione per la maggior parte del tempo; Tuttavia ci sono momenti in cui potresti non avere accesso allo strumento di ispezione di un browser Web. In quei periodi di risorse limitate, troveresti molto utile il metodo prettifato.

Ecco come lo usi:

minestra.abbellire()

Il markup sembrerebbe adeguatamente distanziato, proprio come nell'immagine qui sotto:

Quando si applica il metodo prettify sulla zuppa, il risultato non è più un tipo BS4.Bellissimo. Il risultato è ora tipo "Unicode". Ciò significa che non è possibile applicare altri metodi di bellasoup su di esso, tuttavia la zuppa stessa non è interessata, quindi siamo al sicuro.

Trovare i nostri tag preferiti

HTML è composto da tag. Memorizza tutti i suoi dati in essi e nel mezzo di tutto quel disordine risiede i dati di cui abbiamo bisogno. Fondamentalmente, questo significa che quando troviamo i tag giusti, possiamo ottenere ciò di cui abbiamo bisogno.

Allora come troviamo i tag giusti? Facciamo uso dei metodi Find and Find_all di Beautifulsoup.

Ecco come funzionano:

IL Trovare Metodo cerca il primo tag con il nome necessario e restituisce un oggetto di tipo BS4.elemento.Etichetta.

IL trova tutto Metodo d'altra parte, cerca tutti i tag con il nome del tag necessario e li restituisce come un elenco di tipo BS4.elemento.ResultSet. Tutti gli elementi nell'elenco sono di tipo BS4.elemento.Tag, così possiamo eseguire l'indicizzazione nell'elenco e continuare la nostra esplorazione di bellissimi.

Vediamo del codice. Troviamo tutti i tag DIV:

minestra.trova ("div")

Otterremmo il seguente risultato:

Nome:Dr Peter Parker

Controllando la variabile HTML, noteresti che questo è il primo tag DIV.

minestra.find_all ("div")

Otterremmo il seguente risultato:

[
Nome:Dr Peter Parker,
Lavoro:Ingegnere dell'apprendimento automatico,
Telefono:+12345678910,
E-mail:
[email protected]
,
Sito web:
Pparkerworks.com
"

Restituisce un elenco. Se ad esempio desideri il terzo tag DIV, esegui il seguente codice:

minestra.find_all ("div") [2]

Restituirebbe quanto segue:

Telefono:+12345678910

Trovare gli attributi dei nostri tag preferiti

Ora che abbiamo visto come ottenere i nostri tag preferiti, che ne dici di ottenere i loro attributi?

Potresti pensare a questo punto: “Per cosa abbiamo bisogno di attributi?". Bene, molte volte, la maggior parte dei dati di cui abbiamo bisogno saranno indirizzi e siti Web. Questo tipo di dati è generalmente ipertestuale nelle pagine Web, con i collegamenti nell'attributo "Href".

Quando abbiamo estratto il tag necessario, usando i metodi find o find_all, possiamo ottenere attributi applicando Atrs. Ciò restituirebbe un dizionario dell'attributo e il suo valore.

Per ottenere l'attributo e -mail, ad esempio, otteniamo i tag che circondano le informazioni necessarie e facciamo quanto segue.

minestra.find_all (“A“) [0].Atrs

Che restituirebbe il seguente risultato:

'href': 'Mailto: [email protected] '

Stessa cosa per l'attributo del sito Web.

minestra.find_all ("a") [1].Atrs

Che restituirebbe il seguente risultato:

'href': 'http: // pparkerworks.com '

I valori restituiti sono dizionari e la sintassi del dizionario normale può essere applicata per ottenere le chiavi e i valori.

Vediamo il genitore e i figli

Ci sono tag ovunque. A volte, vogliamo sapere quali sono i tag dei bambini e qual è il tag genitore.

Se non sai già cosa sia un tag genitore e figlio, questa breve spiegazione dovrebbe essere sufficiente: un tag genitore è il tag esterno immediato e un bambino è il tag interiore immediato del tag in questione.

Dando un'occhiata al nostro HTML, il tag del corpo è il tag genitore di tutti i tag DIV. Inoltre, il tag audace e il tag di ancoraggio sono i bambini dei tag DIV, ove applicabili, come non tutti i tag DIV possiedono tag di ancoraggio.

Quindi possiamo accedere al tag genitore chiamando il findparent metodo.

minestra.trova ("div").findParent ()

Ciò restituirebbe l'intero tag del corpo:


Nome:Dr Peter Parker
Lavoro:Ingegnere dell'apprendimento automatico
Telefono:+12345678910
E-mail:
[email protected]

Sito web:
Pparkerworks.com

Per ottenere il tag dei bambini del quarto tag DIV, chiamiamo il FindChildren metodo:

minestra.find_all ("div") [4].findChildren ()

Restituisce quanto segue:

[Sito web:, Pparkerworks.com"

Cosa c'è dentro per noi?

Durante la navigazione delle pagine Web, non vediamo tag ovunque sullo schermo. Tutto ciò che vediamo è il contenuto dei diversi tag. E se vogliamo il contenuto di un tag, senza tutte le staffe angolari che mettono la vita a disagio? Non è difficile, tutto ciò che faremmo è chiamare get_text Metodo sul tag di scelta e otteniamo il testo nel tag e se il tag ha altri tag al suo interno, ottiene anche i loro valori di testo.

Ecco un esempio:

minestra.Trova ("corpo").get_text ()

Questo restituisce tutti i valori di testo nel tag del corpo:

Nome: Dr Peter Parker
Lavoro: ingegnere dell'apprendimento automatico
Telefono: +12345678910
Email: [email protected]
Sito web: Pparkerworks.com

CONCLUSIONE

Questo è quello che abbiamo per questo articolo. Tuttavia, ci sono ancora altre cose interessanti che possono essere fatte con Beautifulsoup. È possibile controllare la documentazione o utilizzare Dir (Beautfulsoup) Nella shell interattiva per vedere l'elenco delle operazioni che possono essere eseguite su un oggetto per bellissimi. Questo è tutto da me oggi, finché non scrivo di nuovo.