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を取得しての処理も使いやすい印象なので、これからいろいろ試してみたいです。