[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()