python/seleniumを使ってtwitterに自動投稿してみる

Python
この記事は約3分で読めます。

今回のは完全に趣味の領域ですが、seleniumを利用して、twitterに自動投稿をする機能を作ってみました。

Advertisements

準備するもの

  • pip環境
  • selenium(pipにinstall)
  • python3

python/seleniumで実装すること

  1. Twitter accountにログイン
  2. 指定したテキストを投稿
  3. cronを使って自動化(2020/01 追記記事をご参照ください)

ゴールのTweet

実際に実行した結果、ログインして、tweetができました。

実際のコード

import time, sys
from selenium import webdriver as wd
from selenium.webdriver.common.keys import Keys
from requests import request as rq
from selenium.webdriver import Chrome, ChromeOptions
import chromedriver_binary


options = ChromeOptions()
#options.add_argument('-headless')

driver = wd.Chrome()
url = "https://twitter.com/"

driver.get(url)


driver.find_element_by_xpath('//*[@id="doc"]/div/div[1]/div[1]/div[2]/div[2]/div/a[2]').click()

time.sleep(3)
id = driver.find_element_by_xpath('//*[@id="page-container"]/div/div[1]/form/fieldset/div[1]/input')
id.send_keys("Twitterのアカウント名を入力")

password = driver.find_element_by_xpath('//*[@id="page-container"]/div/div[1]/form/fieldset/div[2]/input')
password.send_keys('Twitterのログインパスワードを入力')

driver.find_element_by_xpath('//*[@id="page-container"]/div/div[1]/form/div[2]/button').click()

try:
    time.sleep(2)
    elem = driver.find_element_by_xpath('//*[@id="tweet-box-home-timeline"]')
    elem.send_keys("投稿したい内容を入力:test from selenium")
    print("input_done")
    time.sleep(2)
    elem.send_keys(Keys.CONTROL, Keys.ENTER)

except KeyboardInterrupt:
    print("\nprogram was ended.\n")
    sys.exit()

まとめ

正直Twitter APIを利用して実施することも可能ですが、少し久しぶりにseleniumを知り合いからのリクエストで利用したので、Twitterへの自動投稿機能を作ってみました。

これから、数回に渡ってハロワやクラウドワークスなどのサイトからスクレイピングして、ローカルファイル(exlsなどのオフィス含む)や自分宛のメールを送付するコードを紹介していきたいと思います。

追記:2020/01 launchedの設定について

launchedの設定関係について以下に記事にしていますので、ローカルでの自動化が必要な場合、そちらをご参照ください。

コメント