Pythonのseleniumライブラリを使ってJuliaLangでwebスクレイピング
概要
Juliaは科学技術計算用に最適化されたプログラミング言語です。一般的にPythonよりも速いと言われています。ライブラリはpythonに劣るかもしれませんが、pycall
を使うことによりPythonのライブラリも参照できます。今回はpycall
を使ってwebスクレイピングを実践してみます。
目次
- 概要
- 目次
- 計算環境
- JuliaLangのインストール
- Juliaの実行方法
- PyCallの導入
- PyCallの使い方
- seleniumをpycallに導入
- seleniumをpycallで起動
- まとめ
- 参考文献
計算環境
JuliaLangのインストール
公式サイトから自分のOSに合ったパッケージをダウンロード、インストールすればよいです。Github上からcloneする方法もあるらしいですが、今回は割愛します。
Juliaの実行方法
macだったら、julia.app
を実行します。または、exec '/Applications/Julia-1.1.app/Contents/Resources/julia/bin/julia'
をターミナルで実行することで起動できます。
PyCallの導入
Julia 1.0
からパッケージの管理方法が変わっています。これまではREPL(Juliaの実行モード)でPkg.add("Example")
としていましたが、juliaモードで]
を打つことでパッケージ管理モードに入り、add Example
と打つことでパッケージを導入できます。
julia> ] # パッケージ管理モード (v1.1) pkg> add PyCall # PyCallの導入
ちなみに、juliaモードでセミコロンを打つとshellモードに、Ctrl + c
でjuliaモードになります。
(なお、juliaを終了するときはCtrl + d
)
PyCallの使い方
READMEに従って、pythonのmathライブラリを参照してみます。
using PyCall @pyimport math math.sin(math.pi / 4) - sin(pi / 4) # returns 0.0
返り値が0.0ならOKです。
seleniumをpycallに導入
標準ライブラリなら特に問題ないのですが、もしpythonライブラリを追加で使いたいなら、pyimport_conda
でライブラリを導入します。
using PyCall pyimport_conda("selenium", "selenium")
次に、web driverを入れます。chromeを使う場合、こちらのサイトからchrome driverをダウンロードして展開します。chrome driverのバージョンが新しすぎると、動かないことがあるので注意。
seleniumをpycallで起動
下にseleniumを起動するjuliaプログラムを示します。このとき、pythonと違ってURLやパスなどはダブルクオーテーションで区切ること、juliaにtime関数があるみたいなのでpythonのtime関数を使うときには名前を変える(今回はpytime
にしています)ことに注意してください。なお、以前の記事でseleniumについての紹介はしていますので、seleniumについての説明は省きます。
using PyCall @pyimport selenium.webdriver as webdriver @pyimport time as pytime driver = webdriver.Chrome(executable_path="Chrome Driverがあるパス") get_url = "https://snova301.hatenablog.com/" driver.get(get_url) # webページを開く pytime.sleep(2) driver.quit() # ブラウザを閉じる
実行できていたら成功です。
まとめ
selenium
を使ってJuliaLangでwebデータを参照する方法を示しました。なお、selenium
を使わずともJuliaLangでwebスクレイピングする方法はありますが、本記事では割愛します。また、今回はselenium
を使いましたが他のpythonライブラリもJuliaLangで実行できるので、JuliaLangってすごいなと思いました。