自分のブログがアップデートされた時にいい感じに整形しツイートしたかったのでSeleniumを使って自動化できないかと思い。調べてみました。 (API取得でもいいのですが大変そうだったので)
Seleniumとは?
ブラウザ自動化用のツールです。
自分が操作したいブラウザに対応するWebdriverを使用することで、多種のブラウザでの操作を共通のソースで自動化することができます。
詳しくは以下を参照のこと。
/ja/documentation/webdriver/
サポートされている言語はC#、Java、Perl、Ruby、PHP、Pythonと多種多様ですが、扱いやすさからPythonで実装していきます。
インストールしよう
インストールはとっても簡単です。Webdriverと使用する言語に対応するSleniumのインストールを行います。
WebDriverをインストールします。
今回はchromedriverを使用します。 Macの場合は以下
$ brew install chromedriver
もしも「No available fomula with name "chromedriver ~"」的なエラーが出たら以下のコマンドを実行します。少し調べた感じだとGUIをMacにコマンドでインストールするための指定方法なそうです。
$ brew tap homebrew/cask $ brew cask install chromedriver
Seleniumのインストール
今回はPythonでの実装を予定しているのでpipを使ってインストールします。
pip install selenium
ツイッターにログインしてみよう。
今回以下のようなソースを作ってみた。
アカウントとパスワードは適宜読み替えてください。
import time from selenium import webdriver from selenium.webdriver.chrome.options import Options from selenium.webdriver.common.keys import Keys # アカウント情報 account = 'xxxxxxxx' password = 'xxxxxxxxx' # ツイートしたい文字列 text = "テストでござる" # Twitterログイン実行する処理 def login_twitter(): # ログインページを開く driver.get('https://twitter.com/login/') time.sleep(2) # 待ち # account入力 element_account = driver.find_element_by_name("session[username_or_email]") element_account.send_keys(account) time.sleep(2) # 待ち # パスワードを入力する element_pass = driver.find_element_by_name("session[password]") element_pass.send_keys(password) time.sleep(3) # 動作止める # ログインボタンクリック element_login = driver.find_element_by_xpath('//*[@data-testid="LoginForm_Login_Button"]') driver.execute_script("window.scrollTo(0, document.body.scrollHeight);") element_login.click() time.sleep(3) # 待ち # seleniumを起動 options=Options() driver=webdriver.Chrome(chrome_options = options) # ログイン処理 login_twitter() time.sleep(10) # ブラウザを閉じseleniumを終了 driver.close() driver.quit()
ツイート方法までは漕ぎ着けることができなかったので今回はここまで。
今後更新予定です。
Seleniumを用いたツイート
追記としていましたが、所感なども書きたかったため別記事としました。
以下から参照可能です。