見出し画像

Pythonライブラリ(Webスクレイピング):Helium

1.概要

 インターネットを経由して情報を取得する技術をスクレイピングと言います。ライブラリとして有名なのはSeleniumBeautiful soupですが要素取得が手間です。今回は要素取得が簡単に使用できるHeliumを紹介します。

pip install helium

2.Heliumの要素取得方法

 Heliumの特徴として、デベロッパーツール使用やHTML構造解析をしなくてWeb画面に見えている文字を直接指定することで要素を取得できます。

【要素取得時の確認箇所】※サンプルコードの場合
●ID:mail@example.com or note ID(うっすら見えている文字)
●PASSWORD:要素が見てないためseleniumと同じやり方で取得
●ログインボタン:"ログイン" (ボタンの上に書いてある文字列)

[In]
from helium import *
import time
url = 'https://note.com/sitesettings/stats'
driver = start_chrome(url, headless=False) #Chromeを立ち上げ

write('KIYO', into='mail@example.com or note ID') #heliumでメールアドレスを入力
driver.find_element_by_id('password').send_keys('password') #seleniumのAPIでパスワードを入力
click('ログイン')

3.Heliumの使用方法

 下記記事が非常に体系的にまとめられており参考用としても優秀です。

 私がよく使う処理は下記ですが詳細な説明は上記記事をご参照ください。

【helium-API】
●ドライバーの立ち上げ:driver = start_chrome(url, headless=False) 
●値の記載:write('入力値', into='表示名称')
●要素のクリック:click('表示名称')
●ホバー:hover('表示名称')
●ブラウザを終了:kill_chrome():

4.エラー事例

 Heliumでよく生じたエラー事例は下記の通りです。

要素が取れなくなった:Webページの構造や属性名は比較的変わるためいつの間にかエラーがでます。対応として要素を取り直す必要があります。
ドライバが起動できない:ブラウザが自動で更新されていつの間にかWebドライバとブラウザのVersionがずれてエラーが発生します。
その場合は"C:\Users\KIYO\Anaconda3\Lib\site-packages\helium\_impl\webdrivers\windows\chromedriver.exe"のようにHeliumパッケージ内のドライバを手動で更新します。
●要素が見つからない:ドライバの動きが遅く次の処理が間に合っていないことがあります。対応としてtime.sleep()を挟んで待機時間を設けます。
●体裁が異なる:ブラウザがIEしか対応していないページをchromeのwebドライバで処理しようとしたためエラーが発生しました。
●要素が取れない:いまだに未解決の問題で意味が分からん。


あとがき

 heliumだけだと要素の取り方がわからないことも多いのでseleniumのAPIと合わせて使用していますが非常に便利だと思います。


この記事が気に入ったらサポートをしてみませんか?