Python+Selenium+ChromeでDeepLの翻訳を実行する
/
Excel等ですでに翻訳したい文をまとめている場合,いちいちコピペしてDeepLに翻訳させるのは面倒なので,Python+Selenium+ChromeでDeepLの翻訳を実行します.
全国630店舗以上!もみほぐし・足つぼ・ハンドリフレ・クイックヘッドのリラクゼーション店【りらくる】
# Selenium+Chromeの起動
下記のコードでSelenium+Chromeを起動させ,DeepLに接続します.
import time
import requests,os,bs4
from selenium import webdriver
from selenium.webdriver import Chrome
from selenium.webdriver.chrome.options import Options
from selenium.webdriver.common.keys import Keys
from selene.driver import SeleneDriver
from webdriver_manager.utils import chrome_version
from webdriver_manager.chrome import ChromeDriverManager
# ローカル上でselenium.webdriverの起動
def webdriver_local_start():
# versionに応じたchrome driver のインストール
version = chrome_version()
url = 'http://chromedriver.storage.googleapis.com/LATEST_RELEASE_' + version
response = requests.get(url)
options = Options()
options.add_argument('--headless')
# インストールしたchrome driverでchromeを起動
driver = SeleneDriver.wrap(webdriver.Chrome(
executable_path=ChromeDriverManager().install(),
chrome_options=options))
return driver
# selenium.webdriverの起動(ローカル)
driver = webdriver_local_start()
# Selenium 経由でブラウザを操作する
url = 'https://www.deepl.com/ja/translator'
driver.get(url)
print(driver.current_url)
# https://www.deepl.com/ja/translator
# 翻訳前の文を入力
# 翻訳前言語のメニューの展開
下記のコードで翻訳前言語のメニューを開きます.
# 言語の設定
languages = driver.find_elements_by_class_name("lmt__language_select__active__title")
print(languages[0].text)
# 言語メニューを開く
languages[0].click()
# 言語
# 翻訳前言語の選択
下記のコードで翻訳前言語の選択します.
# 言語メニュー
language_menu = driver.find_element_by_class_name("lmt__language_select__menu")
language_buttons = language_menu.find_elements_by_tag_name("button")
# 英語を選択
for language_button in language_buttons:
if language_button.text=='英語':
# 画面外のボタンをクリック
driver.execute_script("arguments[0].click();", language_button)
break
# 英語と選択したか確認
languages = driver.find_elements_by_class_name("lmt__language_select__active__title")
print(languages[0].text)
# 英語
# 翻訳前の文を記入
下記のコードで翻訳前の文を記入します.
# 英語を記入
en_text_area = driver.find_element_by_css_selector(".lmt__textarea.lmt__source_textarea.lmt__textarea_base_style") # 英語のテキストエリア
en_text_area.clear() # テキストエリアをクリア
en_text_area.send_keys("This is a pen.") # 英語記入
print(en_text_area.get_attribute("value")) # 記入した文字列確認
time.sleep(5) # 翻訳に要する時間を確保
# This is a pen.
# 翻訳後の文を出力
下記のコードで翻訳後の文を出力します.
# 和訳の確認
jp_text_area = driver.find_element_by_css_selector(".lmt__textarea.lmt__target_textarea.lmt__textarea_base_style")
print(jp_text_area.get_attribute("value"))
# 'これはペンです。'
# まとめ
以上で,Python+Selenium+ChromeでDeepLの翻訳を実行しました.
ただ,やりすぎると途中で止められるので,改善は必要です.
# 参考サイト
10分で理解する Selenium (opens new window)
Docker上でSeleniumとHeadless ChromeとPython3を動かす (opens new window)
Dockerコンテナからseleniumを使ってスクレイピング (opens new window)
Python×SeleniumでWebスクレイピング実践 (opens new window)