HTMLの表をスクレイピングして行列データにする処理
今回は行列計算ライブラリはPandasを利用します。
そうすると、なんとread_html()
関数が用意されています。
これを使うと、2行でスクレイピングができます。
import pandas as pd
pd.read_html( <URL> )
ただ一つ難点があり、ヘッダがデフォルトでは読まれず、単なる行として例えば1番目の行に読み込まれてしまいます。
なので、単なる行ではなくヘッダですと指定する必要があり、下記のようにします。
dfs = pd.read_html(<URL>, header=<行番号>)
たとえば、Wikipediaの日本の都市の表をスクレイピングするには、こうします。
WIKI_URLWIKI_UR = "https://en.wikipedia.org/wiki/List_of_cities_in_Japan"
dfs = pd.read_html(WIKI_URL, header=0) # set header with row #0
この関数は内部で有名なスクレイピングツールbeautifulsoup4を利用しています。
生でbeautifulsoup4を使う方法はこちら。
Pandas行列を整形して利用しよう
行や列を追加する方法は以下。dataframe['列名']=値
を使う。
http://sinhrks.hatenablog.com/entry/2014/11/12/233216
行や列を削除する方法は以下。drop
関数を使う。
https://note.nkmk.me/python-pandas-drop/