暗号通貨.py

ビットコインやブロックチェーンの技術に衝撃を受け、プログラミングの勉強を開始。現在はPythonを勉強中。

Python

Selenium+ PhantomJSで自動でPoloniexのスクリーンショットを撮る

最近この本を読んでます。

まだ途中ですが、私のような初心者にもわかりやすく素晴らしい本だと思います。

スクレイピングはWebサイトから効率よく情報を収集するために欠かせない技術です。

Unixコマンドでのスクレイピングの解説から始まり、Pythonでのurllibやrequest、lxml、BeautifulSoup、Scrapyなどのライブラリを用いたスクレイピングの方法、データの保存、活用方法まで幅広く網羅しています。

特にScrapyについては1章割いて解説しているようで読み応えがありそうです。←まだ読めていない

この本を読んでSeleniumとPhantomjsというブラウザを自動で操作できるツールを知りました。

元々はWebアプリケーションのテストを自動化するためのツールのようですが、スクレイピングにも使えるとのことで本書でも紹介されています。

これらのツールを使うと、簡単にWebページを自動でスクリーンショットを撮ることができます。

そこで本記事では世界最大のアルトコイン取引所Poloniexのスクショを撮ってツイートするbotを作ります。

Poloniexが赤くなる「Red Polo」

ビットコインやアルトコイン好きには既知の現象ですが、世界最大のアルトコイン取引所Poloniexがまれに真っ赤になることがあります。まるで血を流しているかのように。

暗号通貨の絶対的キングであるビットコインの価格が急激に上昇することにより、相対的にアルトコイン価格が下落し、poloの[change]欄がマイナスの赤になる例のアレです。

これを「Red Polo現象」とでも名付けましょうか。

全てのコインが赤くなるのは珍しいですが、たまーにあります。

ポートフォリオのアルトコインの割合が高い人には悲劇のような現象です。

上のような画像を自動でスクショしてツイートすることが目的です。

スポンサーリンク

adsense

スポンサーリンク

Selenium + PhantomJSのインストール

Seleniumはpip、PhantomJSはHomebrewでインストールできます。

$ pip install selenium

$ brew install phantomjs

コード

from selenium import webdriver
import tweepy

CONSUMER_KEY = 'xxxxxxxxxxxxxxxxxx'
CONSUMER_SECRET = 'xxxxxxxxxxxxxxxxxx'

#OAuthHandlerクラスのインスタンスを作成
auth = tweepy.OAuthHandler(CONSUMER_KEY, CONSUMER_SECRET)

ACCESS_TOKEN = 'xxxxxxxxxxxxxxxxxx'
ACCESS_SECRET = 'xxxxxxxxxxxxxxxxxx'
auth.set_access_token(ACCESS_TOKEN, ACCESS_SECRET)

api = tweepy.API(auth)

driver = webdriver.PhantomJS()
driver.get('https://poloniex.com/exchange#btc_xem')
driver.save_screenshot('polo.png')
api.update_with_media(filename='polo.png')

PythonのライブラリTweepyを使ってツイートしています。
Tweepyについては以前書いています。
PythonのTwitterライブラリ「Tweepy」を使ってつぶやいてみる

まずはseleniumからwebdriverをインポートします。

そしてPhantomJSのWebDriverオブジェクトを作成し、getメソッドを使ってスクリーンショットを撮りたい対象のURLを取得します。

save_screenshotメソッドでスクショを撮り、polo.pngというディレクトリに保存されるので、Tweepyの画像をツイートするupdate_with_mediaメソッドによりツイートします。これだけです。

あとはHerokuを使って定期的につぶやくBotにするだけです。

Herokuの設定方法などは今回は割愛します。

ツイートの結果はこんな感じです。

set_window_sizeメソッドを使えば画像のサイズも変更できるようです。

まとめ

Selenium便利ですね。ブラウザを自動で操作できるのは良いですね。

先程のスクレイピングの本にはGoogle検索を自動化する方法も紹介していました。

もっと色々できそうなので、また記事にします。

日本で一番簡単にビットコインが買える取引所 coincheck bitcoin

-Python