Python3でBeautifulSoup4を使ってHTMLを解析する準備をする
作成: 2021-06-27
        更新: 2021-06-27
    Python3とBeautifulSoup4を使って、HTMLを解析する準備をした時のメモです。
インストール方法と簡単な使い方を調べました。
環境
環境としては、以下でWSL上のUbuntu 20.04で動かします。
Pythonはubuntuに最初から入っているものを使いました。
- Windows 10 home
- WSL: Ubuntu 20.04
- Python 3.8.5
- pip 20.0.2
インストール
pipを使ってインストールします。
$ pip install beautifulsoup4使ってみる
requestsを使って取得したページの内容を解析し、H2タグを抽出してみます。
# file: get_nnnamani-com.py
import bs4
import requests
soup = bs4.BeautifulSoup(requests.get(
    'https://nnnamani.com').text, 'html.parser')
for h2 in soup.find_all('h2'):
    print(h2.text)以下のような結果になります。
$ python3 get_nnnamani-com.py 
Rubyでの繰り返し処理
Ubuntu Desktop 20.04 LTSでOS起動時にsshdが起動してこない
Vagrantで自分用のboxを作成して、起動を高速化したい
Bashでのファイルの存在チェック方法
Windows 10でRubyの開発環境を用意したい
Rustでファイルを開く
Rustでランダム文字列を生成するCLIツールを作った
Rustでdevelop環境のみcrateを読み込む方法
Rustでユニットテストを書く方法を調べた
Rustをインストールしてプロジェクトを作ってみる
Ansible使ってみた
Ruby on RailsでPostgresを使う
scrcpyでPCからUSB経由でAndroidスマホを操作する
lsの代わりに、exaを使ってみる
JuliaでJupyter Notebook(JupyterLab)をセットアップした
Juliaをさわってみた
Ruby on Railsでラジオボタンを表示する方法
Skaffoldを使ってみる
MinikubeでKubernetesのローカル環境を構築するスクレイピングをする場合、一度ダウンロードしたHTMLに対して解析を行いたい場合があります。
例えば、以下のようにhtmlをダウンロードしてきた場合を考えます。
$ curl 'https://nnnamani.com' > nnnamani.com.html
  % Total    % Received % Xferd  Average Speed   Time    Time     Time  Current
                                 Dload  Upload   Total   Spent    Left  Speed
100 10029    0 10029    0     0   8930      0 --:--:--  0:00:01 --:--:--  8930上記のコマンドでとってきた、ローカルのファイルnnnamani.com.htmlをBeautifulSoupに渡すには、以下のようになります。
openで開いたファイルを渡すだけです。
# file: get_nnnamani-com_local.py
import bs4
soup = bs4.BeautifulSoup(open('./nnnamani.com.html'), 'html.parser')
for h2 in soup.find_all('h2'):
    print(h2.text)実行結果は以下のようになります。
$ python3 get_nnnamani-com_local.py 
Rubyでの繰り返し処理
Ubuntu Desktop 20.04 LTSでOS起動時にsshdが起動してこない
Vagrantで自分用のboxを作成して、起動を高速化したい
Bashでのファイルの存在チェック方法
.... 結果はrequestsと同じなので、省略 ....まとめ
BeautifulSoup4を入れて動かしてみました。
細かい使い方はこれからですが、なんとなくの使い方がわかりました。
DOMを取得しての処理も使いやすい印象なので、これからいろいろ試してみたいです。