Pythonのスクレイピングライブラリ「Helium」の使い方
Pythonでスクレイピングと言えば Beautiful Soup か Selenium です。
SeleniumはJavaScriptを使っているページでもデータが取得できるという、とても便利なライブラリですが、少し面倒です。
これを簡単に使えるようにしたのがHeliumです。
使い方をメモしておきます。
目次
参考
selenium-python-helium/cheatsheet.md at master · mherrmann/selenium-python-helium · GitHub
Python : Heliumを使用したブラウザ操作
インストール
次のようにインストールします。これだけです。
なお、使っているChromeとChromeDriverのバージョンが違うと動きません。
ChromeDriverのバージョンが違う場合に試した方法 | You Look Too Cool
基本
次のようにHeliumをインポートします。
次のようにChromeを起動しGoogleを開きます。
次のようにブラウザを終了します。
「はい」と書かれた箇所をクリックするには次のようにします。
「生年月日」と書かれた箇所の右の文字列を取得するには次のようにします。
次のようにするとページを遷移します。ログインした後などに使います。
go_to(url)
CSSと同じセレクタが使えます。
次のようにするとセレクタに合致するエレメントを全て取得します。
S()という書き方をします。
エレメントを一つだけ取得する方法はないようです。
応用
キーボードを押す操作を再現する場合はpressを使います。
次のようにします。
press(TAB)
press(ESCAPE)
heliumは基本的には要素が表示されるまで待ちます。
何らかの原因で強制的に時間を指定して処理を待つにはtime.sleepを使います。
time.sleep(15) # 秒数
サンプル
表から西暦年と節分の日を示すデータを取得します。
url = "https://stabucky.com/wp/archives/13786"
start_chrome(url)
els = find_all(S("td:nth-of-type(1)"))
years = [el.web_element.text for el in els]
els = find_all(S("td:nth-of-type(2)"))
days = [el.web_element.text for el in els]
records = list(zip(years, days))
print(records)
kill_browser()
[ 2021年5月17日 | カテゴリー: Python, デジタル | タグ: Helium ]
« GASでユーザー定義関数を作り使い回す方法 | コサインのマクローリン展開をPythonで »
コメントを残す