Piękna zupa - instalacja
Ponieważ BeautifulSoup nie jest standardową biblioteką Pythona, musimy ją najpierw zainstalować. Zamierzamy zainstalować bibliotekę BeautifulSoup 4 (znaną również jako BS4), która jest najnowszą.
Aby odizolować nasze środowisko pracy, aby nie zakłócać istniejącej konfiguracji, stwórzmy najpierw środowisko wirtualne.
Tworzenie środowiska wirtualnego (opcjonalnie)
Środowisko wirtualne pozwala nam stworzyć izolowaną kopię roboczą Pythona dla konkretnego projektu bez wpływu na zewnętrzną konfigurację.
Najlepszym sposobem na zainstalowanie dowolnego komputera z pakietami Pythona jest użycie pip, jednak jeśli pip nie jest jeszcze zainstalowany (możesz to sprawdzić za pomocą - „pip –version” w poleceniu lub znaku zachęty powłoki), możesz zainstalować, wydając poniższe polecenie -
Środowisko Linux
$sudo apt-get install python-pip
Środowisko Windows
Aby zainstalować pip w systemie Windows, wykonaj następujące czynności -
Pobierz get-pip.py z https://bootstrap.pypa.io/get-pip.py lub z github na swój komputer.
Otwórz wiersz polecenia i przejdź do folderu zawierającego plik get-pip.py.
Uruchom następujące polecenie -
>python get-pip.py
To wszystko, pip jest teraz zainstalowany na twoim komputerze z systemem Windows.
Możesz zweryfikować swój pip zainstalowany, uruchamiając poniższe polecenie -
>pip --version
pip 19.2.3 from c:\users\yadur\appdata\local\programs\python\python37\lib\site-packages\pip (python 3.7)
Instalowanie środowiska wirtualnego
Uruchom poniższe polecenie w wierszu polecenia -
>pip install virtualenv
Po uruchomieniu zobaczysz poniższy zrzut ekranu -
Poniższe polecenie utworzy środowisko wirtualne („myEnv”) w Twoim bieżącym katalogu -
>virtualenv myEnv
Zrzut ekranu
Aby aktywować środowisko wirtualne, uruchom następujące polecenie -
>myEnv\Scripts\activate
Na powyższym zrzucie ekranu widać, że mamy przedrostek „myEnv”, który mówi nam, że znajdujemy się w środowisku wirtualnym „myEnv”.
Aby wyjść ze środowiska wirtualnego, uruchom dezaktywuj.
(myEnv) C:\Users\yadur>deactivate
C:\Users\yadur>
Ponieważ nasze wirtualne środowisko jest już gotowe, zainstalujmy beautifulsoup.
Instalowanie BeautifulSoup
Ponieważ BeautifulSoup nie jest standardową biblioteką, musimy ją zainstalować. Będziemy używać pakietu BeautifulSoup 4 (znanego jako bs4).
Maszyna Linux
Aby zainstalować bs4 na Debianie lub Ubuntu Linux za pomocą menedżera pakietów systemowych, uruchom poniższe polecenie -
$sudo apt-get install python-bs4 (for python 2.x)
$sudo apt-get install python3-bs4 (for python 3.x)
Możesz zainstalować bs4 za pomocą easy_install lub pip (na wypadek, gdybyś znalazł problem z instalacją przy użyciu systemowego narzędzia do pakowania).
$easy_install beautifulsoup4
$pip install beautifulsoup4
(Może być konieczne użycie odpowiednio easy_install3 lub pip3, jeśli używasz python3)
Komputer z systemem Windows
Instalacja beautifulsoup4 w systemie Windows jest bardzo prosta, zwłaszcza jeśli masz już zainstalowany pip.
>pip install beautifulsoup4
Więc teraz beautifulsoup4 jest zainstalowany w naszej maszynie. Porozmawiajmy o niektórych problemach napotkanych po instalacji.
Problemy po instalacji
Na komputerze z systemem Windows możesz napotkać błąd instalacji niewłaściwej wersji, głównie przez -
błąd: ImportError “No module named HTMLParser”, musisz uruchomić wersję kodu w języku Python 2 pod Pythonem 3.
błąd: ImportError “No module named html.parser” błąd, musisz uruchomić wersję kodu w Pythonie 3 pod Pythonem 2.
Najlepszym sposobem na wyjście z powyższych dwóch sytuacji jest ponowna instalacja BeautifulSoup, całkowicie usuwając istniejącą instalację.
Jeśli masz SyntaxError “Invalid syntax” w wierszu ROOT_TAG_NAME = u '[dokument]', musisz przekonwertować kod python 2 na python 3, po prostu instalując pakiet -
$ python3 setup.py install
lub ręcznie uruchamiając skrypt konwersji 2 do 3 języka Python w katalogu bs4 -
$ 2to3-3.2 -w bs4
Instalowanie parsera
Domyślnie Beautiful Soup obsługuje parser HTML zawarty w standardowej bibliotece Pythona, jednak obsługuje również wiele zewnętrznych parserów Pythona, takich jak parser lxml lub parser html5lib.
Aby zainstalować parser lxml lub html5lib, użyj polecenia -
Maszyna Linux
$apt-get install python-lxml
$apt-get insall python-html5lib
Komputer z systemem Windows
$pip install lxml
$pip install html5lib
Ogólnie rzecz biorąc, użytkownicy używają lxml dla szybkości i zaleca się używanie parsera lxml lub html5lib, jeśli używasz starszej wersji Pythona 2 (przed wersją 2.7.3) lub pythona 3 (przed wersją 3.2.2), ponieważ wbudowany parser HTML Pythona jest niezbyt dobrze radzi sobie ze starszą wersją.
Prowadzenie Pięknej Zupy
Czas przetestować nasz pakiet Beautiful Soup na jednej ze stron html (biorąc stronę internetową - https://www.tutorialspoint.com/index.htm, możesz wybrać dowolną inną stronę internetową) i wyodrębnić z niej pewne informacje.
W poniższym kodzie próbujemy wyodrębnić tytuł ze strony internetowej -
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)
Wynik
<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>
Jednym z typowych zadań jest wyodrębnienie wszystkich adresów URL na stronie internetowej. W tym celu wystarczy dodać poniższy wiersz kodu -
for link in soup.find_all('a'):
print(link.get('href'))
Wynik
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
Podobnie możemy wyodrębnić przydatne informacje za pomocą beautifulsoup4.
Teraz zrozumiemy więcej na temat „zupy” w powyższym przykładzie.