WSL2でBeautiful Soup 4を使う

先日、Windows 10 の Linux 互換レイヤー WSL2 に Ubuntu を立て、Selenium 環境を構築しました。

WSL2でSeleniumを使う – あららぼ

今回は、その環境に Beautiful Soup 4 を導入します。
※Beautiful Soup は HTML や XML を解析するための Python パッケージです。

目次

導入

Beautiful Soup 4 は Python の標準ライブラリではなく外部ライブラリのため、Python のパッケージ管理システム pip を使ってインストールしていきます。

Python 3

WSL2 の Ubuntu 20.04 LTS には、既に入っているため、導入不要です。

pip3

先述のとおり、Python のパッケージ管理システムである pip を先に導入します。

$ sudo apt update -y && sudo apt dist-upgrade -y
$ sudo apt install python3-pip -y
The following NEW packages will be installed:
  binutils binutils-common binutils-x86-64-linux-gnu build-essential dpkg-dev fakeroot g++ g++-9 gcc gcc-9
  libalgorithm-diff-perl libalgorithm-diff-xs-perl libalgorithm-merge-perl libasan5 libatomic1 libbinutils
  libc-dev-bin libc6-dev libcc1-0 libcrypt-dev libctf-nobfd0 libctf0 libdpkg-perl libexpat1-dev libfakeroot
  libfile-fcntllock-perl libgcc-9-dev libgomp1 libitm1 liblsan0 libpython3-dev libpython3.8-dev libquadmath0
  libstdc++-9-dev libtsan0 libubsan1 linux-libc-dev make manpages-dev python-pip-whl python3-dev python3-pip
  python3-wheel python3.8-dev zlib1g-dev
0 upgraded, 45 newly installed, 0 to remove and 0 not upgraded.

Beautiful Soup 4

今回のメイン Beautiful Soup 4 を導入していきます。

$ pip3 install beautifulsoup4
Collecting beautifulsoup4
  Downloading beautifulsoup4-4.9.3-py3-none-any.whl (115 kB)
     |████████████████████████████████| 115 kB 5.4 MB/s
Collecting soupsieve>1.2; python_version >= "3.0"
  Downloading soupsieve-2.2.1-py3-none-any.whl (33 kB)
Installing collected packages: soupsieve, beautifulsoup4
Successfully installed beautifulsoup4-4.9.3 soupsieve-2.2.1

ライブラリ

Beautiful Soup 4 でよく使う(と思われる)ライブラリを導入します。

  • requests
    標準実装の urllib よりもシンプルで分かりやすい HTTP 通信ライブラリ。

    $ pip3 install requests
    Requirement already satisfied: requests in /usr/lib/python3/dist-packages (2.22.0)
  • lxml
    標準実装の html.parser よりも高速解析できるパーサ。

    $ pip3 install lxml
    Collecting lxml
    Downloading lxml-4.6.3-cp38-cp38-manylinux2014_x86_64.whl (6.8 MB)
     |████████████████████████████████| 6.8 MB 3.4 MB/s
    Installing collected packages: lxml
    Successfully installed lxml-4.6.3
  • html5lib
    html5 の規則に対応しているパーサ。だが重たい。

    $ pip3 install html5lib
    Collecting html5lib
    Downloading html5lib-1.1-py2.py3-none-any.whl (112 kB)
     |████████████████████████████████| 112 kB 6.0 MB/s
    Requirement already satisfied: six>=1.9 in /usr/lib/python3/dist-packages (from html5lib) (1.14.0)
    Collecting webencodings
    Downloading webencodings-0.5.1-py2.py3-none-any.whl (11 kB)
    Installing collected packages: webencodings, html5lib
    Successfully installed html5lib-1.1 webencodings-0.5.1

テスト

実行して、問題なく動けば OK です。

$ python3 test.py