SeleniumはWebブラウザを自動操作してテストを行うソフトウェアですが、ブラウザの自動操作自体は他にもスクレイピングやデータを自動収集する際にも利用が考えられるでしょう。模倣ではなくWebブラウザをリモート操作したいと思ったことは少なからずあるはずです。 今回はそんな操作を可能にするライブラリ、Chromoteを紹介します。Pythonを使ってGoogle Chromeを操作します。

Chromoteの使い方

Chromoteを使うにはまずGoogle Chromeを -remote-debugging-port=9222 と指定した上で起動します。そしてPython側で操作をします。

$ python
>>> from chromote import Chromote
>>> chrome = Chromote()
>>> tab = chrome.tabs[0]
>>> print tab.url
https://www.google.co.jp/
>>> tab.set_url('https://github.com/chromote')
'{"id":1,"result":{"frameId":"48606.2"}}'
>>> tab.set_url('https://www.moongift.jp/')
'{"id":2,"result":{"frameId":"48607.2"}}'
>>> tab.evaluate('alert("Remotey");')
'{"id":3,"result":{"result":{"type":"undefined"},"wasThrown":false}}'

こんな感じでURLを移動したり、タブを追加したり、さらにJavaScriptを実行することもできます。これだけできればJavaScriptでクリック操作を行って自動ブラウジングするのも簡単でしょう。他のコンピュータのGoogle Chromeでも操作が可能です。

ChromoteはPython製のソフトウェア(ソースコードは公開されていますがライセンスは明記されていません)です。

iiSeymour/chromote