LoginSignup
6
7

More than 3 years have passed since last update.

Seleniumを使って自動でツイートをしてみる。

Posted at

twitterのbotを作ってみたいなぁと思い色々調べてみました。
twitter APIを取得するのは面倒なのでseleniumによって自動ツイートすることを目指します。

参考サイト

方法

以下のようなスクリプトを書いて実行するだけ。
アカウントとパスワードは適宜自分のもので書き換えてください。

import time
from selenium import webdriver
from selenium.webdriver.chrome.options import Options
from selenium.webdriver.common.keys import Keys

# アカウント情報
account = 'xxxxxxxxxxx'
password = 'xxxxxxxxxxx'

# ツイートしたい文字列
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) # 待ち

def send_tweet(text):
    element_text = driver.find_element_by_class_name("notranslate")
    element_text.click()
    element_text.send_keys(text)
    tweet_button = driver.find_element_by_xpath('//*[@data-testid="tweetButtonInline"]')
    tweet_button.click()

# seleniumを起動
options=Options()
driver=webdriver.Chrome(chrome_options = options)

# ログイン処理
login_twitter()
# ツイートする
send_tweet(text)
time.sleep(10)
# seleniumを終了
driver.close()
driver.quit()

6
7
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
6
7