Beautiful Soup - Installazione

Poiché BeautifulSoup non è una libreria Python standard, dobbiamo prima installarla. Installeremo la libreria BeautifulSoup 4 (nota anche come BS4), che è l'ultima.

Per isolare il nostro ambiente di lavoro in modo da non disturbare la configurazione esistente, creiamo prima un ambiente virtuale.

Creazione di un ambiente virtuale (opzionale)

Un ambiente virtuale ci consente di creare una copia di lavoro isolata di Python per un progetto specifico senza influire sulla configurazione esterna.

Il modo migliore per installare qualsiasi macchina con pacchetti Python è usare pip, tuttavia, se pip non è già installato (puoi controllarlo usando - "pip –version" nel tuo comando o prompt della shell), puoi installare dando il comando seguente -

Ambiente Linux

$sudo apt-get install python-pip

Ambiente Windows

Per installare pip in Windows, procedi come segue:

  • Scarica get-pip.py da https://bootstrap.pypa.io/get-pip.py o da GitHub al tuo computer.

  • Apri il prompt dei comandi e vai alla cartella contenente il file get-pip.py.

  • Esegui il seguente comando:

>python get-pip.py

Ecco fatto, pip è ora installato nel tuo computer Windows.

Puoi verificare il tuo pip installato eseguendo il comando seguente:

>pip --version
pip 19.2.3 from c:\users\yadur\appdata\local\programs\python\python37\lib\site-packages\pip (python 3.7)

Installazione dell'ambiente virtuale

Esegui il comando seguente nel prompt dei comandi -

>pip install virtualenv

Dopo l'esecuzione, vedrai lo screenshot qui sotto:

Il comando seguente creerà un ambiente virtuale ("myEnv") nella directory corrente -

>virtualenv myEnv

Immagine dello schermo

Per attivare il tuo ambiente virtuale, esegui il seguente comando:

>myEnv\Scripts\activate

Nello screenshot qui sopra, puoi vedere che abbiamo "myEnv" come prefisso che ci dice che siamo nell'ambiente virtuale "myEnv".

Per uscire dall'ambiente virtuale, esegui Disattiva.

(myEnv) C:\Users\yadur>deactivate
C:\Users\yadur>

Dato che il nostro ambiente virtuale è pronto, ora installiamo beautifulsoup.

Installazione di BeautifulSoup

Poiché BeautifulSoup non è una libreria standard, è necessario installarla. Useremo il pacchetto BeautifulSoup 4 (noto come bs4).

Macchina Linux

Per installare bs4 su Debian o Ubuntu Linux utilizzando il gestore dei pacchetti di sistema, esegui il comando seguente:

$sudo apt-get install python-bs4 (for python 2.x)
$sudo apt-get install python3-bs4 (for python 3.x)

È possibile installare bs4 utilizzando easy_install o pip (nel caso in cui si riscontrino problemi nell'installazione utilizzando System Packager).

$easy_install beautifulsoup4
$pip install beautifulsoup4

(Potrebbe essere necessario utilizzare easy_install3 o pip3 rispettivamente se stai usando python3)

Macchina Windows

Installare beautifulsoup4 in Windows è molto semplice, soprattutto se hai pip già installato.

>pip install beautifulsoup4

Quindi ora beautifulsoup4 è installato nella nostra macchina. Parliamo di alcuni problemi riscontrati dopo l'installazione.

Problemi dopo l'installazione

Sulla macchina Windows potresti incontrare, errore di versione errata installata principalmente attraverso:

  • errore: ImportError “No module named HTMLParser”, quindi devi eseguire la versione python 2 del codice in Python 3.

  • errore: ImportError “No module named html.parser” errore, quindi è necessario eseguire la versione Python 3 del codice in Python 2.

Il modo migliore per uscire da queste due situazioni è reinstallare di nuovo BeautifulSoup, rimuovendo completamente l'installazione esistente.

Se ottieni il file SyntaxError “Invalid syntax” sulla riga ROOT_TAG_NAME = u '[document]', quindi devi convertire il codice python 2 in python 3, semplicemente installando il pacchetto -

$ python3 setup.py install

o eseguendo manualmente lo script di conversione da 2 a 3 di python nella directory bs4 -

$ 2to3-3.2 -w bs4

Installazione di un parser

Per impostazione predefinita, Beautiful Soup supporta il parser HTML incluso nella libreria standard di Python, tuttavia supporta anche molti parser Python esterni di terze parti come il parser lxml o il parser html5lib.

Per installare il parser lxml o html5lib, usa il comando -

Macchina Linux

$apt-get install python-lxml
$apt-get insall python-html5lib

Macchina Windows

$pip install lxml
$pip install html5lib

In generale, gli utenti utilizzano lxml per la velocità e si consiglia di utilizzare il parser lxml o html5lib se si utilizza una versione precedente di python 2 (prima della versione 2.7.3) o python 3 (prima della 3.2.2) come il parser HTML integrato di python è non molto bravo a gestire la versione precedente.

Esecuzione di bella zuppa

È ora di provare il nostro pacchetto Beautiful Soup in una delle pagine html (prendendo la pagina web - https://www.tutorialspoint.com/index.htm, puoi scegliere qualsiasi altra pagina web che desideri) ed estrarre alcune informazioni da essa.

Nel codice sottostante, stiamo cercando di estrarre il titolo dalla pagina web -

from bs4 import BeautifulSoup
import requests
url = "https://www.tutorialspoint.com/index.htm"
req = requests.get(url)
soup = BeautifulSoup(req.text, "html.parser")
print(soup.title)

Produzione

<title>H2O, Colab, Theano, Flutter, KNime, Mean.js, Weka, Solidity, Org.Json, AWS QuickSight, JSON.Simple, Jackson Annotations, Passay, Boon, MuleSoft, Nagios, Matplotlib, Java NIO, PyTorch, SLF4J, Parallax Scrolling, Java Cryptography</title>

Un'attività comune è estrarre tutti gli URL all'interno di una pagina web. Per questo dobbiamo solo aggiungere la riga di codice sottostante -

for link in soup.find_all('a'):
print(link.get('href'))

Produzione

https://www.tutorialspoint.com/index.htm
https://www.tutorialspoint.com/about/about_careers.htm
https://www.tutorialspoint.com/questions/index.php
https://www.tutorialspoint.com/online_dev_tools.htm
https://www.tutorialspoint.com/codingground.htm
https://www.tutorialspoint.com/current_affairs.htm
https://www.tutorialspoint.com/upsc_ias_exams.htm
https://www.tutorialspoint.com/tutor_connect/index.php
https://www.tutorialspoint.com/whiteboard.htm
https://www.tutorialspoint.com/netmeeting.php
https://www.tutorialspoint.com/index.htm
https://www.tutorialspoint.com/tutorialslibrary.htm
https://www.tutorialspoint.com/videotutorials/index.php
https://store.tutorialspoint.com
https://www.tutorialspoint.com/gate_exams_tutorials.htm
https://www.tutorialspoint.com/html_online_training/index.asp
https://www.tutorialspoint.com/css_online_training/index.asp
https://www.tutorialspoint.com/3d_animation_online_training/index.asp
https://www.tutorialspoint.com/swift_4_online_training/index.asp
https://www.tutorialspoint.com/blockchain_online_training/index.asp
https://www.tutorialspoint.com/reactjs_online_training/index.asp
https://www.tutorix.com
https://www.tutorialspoint.com/videotutorials/top-courses.php
https://www.tutorialspoint.com/the_full_stack_web_development/index.asp
….
….
https://www.tutorialspoint.com/online_dev_tools.htm
https://www.tutorialspoint.com/free_web_graphics.htm
https://www.tutorialspoint.com/online_file_conversion.htm
https://www.tutorialspoint.com/netmeeting.php
https://www.tutorialspoint.com/free_online_whiteboard.htm
http://www.tutorialspoint.com
https://www.facebook.com/tutorialspointindia
https://plus.google.com/u/0/+tutorialspoint
http://www.twitter.com/tutorialspoint
http://www.linkedin.com/company/tutorialspoint
https://www.youtube.com/channel/UCVLbzhxVTiTLiVKeGV7WEBg
https://www.tutorialspoint.com/index.htm
/about/about_privacy.htm#cookies
/about/faq.htm
/about/about_helping.htm
/about/contact_us.htm

Allo stesso modo, possiamo estrarre informazioni utili usando beautifulsoup4.

Ora capiamo di più sulla "zuppa" nell'esempio sopra.