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.