見出し画像

[Python]自動翻訳ツイートプログラムを作ってみる(Twitter)

1.自動翻訳ツイートプログラム

つぶやきたい内容を英語に翻訳して自動でツイートするプログラムを作成します。これによって、普段何気ない呟きが英語というフィルターを通ることで、少しカッコよく見えるメリットがあります。
 翻訳の為に、googletransという外部ライブラリを今回使用します。

以下のコマンドでライブラリをインストールします。

pip install googletrans

2.翻訳機能を作る(日本語→英語)

上記の外部ライブラリを利用して、日本語から英語に翻訳する機能を持つモジュールを作成します。

from googletrans import Translator

def trans_ja_to_en(context):
    #Tranlatorをインスタンス
    translator = Translator()
    #translateのメソッドsrcには翻訳前の言語の種類、dtestには翻訳したい言語の種類を指定
    trans_ja_to_en = translator.translate(context, src="ja", dest="en")
    translated_text = trans_ja_to_en.text
    return translated_text

if __name__ == "__main__":
    context = int(input("つぶやく内容を入力してください:"))
    print(trans_ja_to_en(context))

実行結果

つぶやく内容を入力してください:月が綺麗ですね
The moon is beautiful

はい、見事な直訳ですね。これを利用して以前作成した自動ツイート機能を組み合わせてみます。

3.完成形

from selenium import webdriver
from translate import trans_ja_to_en
from time import sleep

DRIVER_PATH = "/Users/Nobita/Desktop/Selenium/chromedriver"
URL = "http://twitter.com/login"

user_id = "各自のidを入力してください"
password = "各自のパスワードを入力してください"
content = input("つぶやく内容を入力してください:")
tran_content = trans_ja_to_en(content)
#つぶやく内容
tweet_content = """
{0}
""".format(tran_content)

driver = webdriver.Chrome(executable_path=DRIVER_PATH)
driver.get(URL)

#ユーザーid入力フォーム要素の取得
user_box = driver.find_element_by_class_name('js-username-field')
#取得した要素へidを入力
user_box.send_keys(user_id)
sleep(1)
#パスワード入力フォーム要素の取得
password_box = driver.find_element_by_class_name('js-password-field')
#取得した要素へキー入力
password_box.send_keys(password)
sleep(1)
#ログインボタン様子の取得
login_btn = driver.find_element_by_css_selector('button.submit.EdgeButton.EdgeButton--primary.EdgeButtom--medium')
#ログインボタンを押下
login_btn.click()
sleep(1)

#ツイートフォームの取得
tweet_box = driver.find_element_by_id('tweet-box-home-timeline')
tweet_box.send_keys(tweet_content)
sleep(1)

#ツイートする
tweet_button = driver.find_element_by_css_selector('button.tweet-action.EdgeButton.EdgeButton--primary.js-tweet-btn')
tweet_button.click()

4.実行結果

画像1





いいなと思ったら応援しよう!