はじめに
この記事では、PythonのSelenium、そしてpyperclipモジュールを使用して、Webスクレイピングによって取得した英文のエラーメッセージを自動的にGoogle翻訳に送り、その翻訳結果を受け取り表示する方法を紹介します。
エラーが発生した場合、多くの開発者はその英文のエラーメッセージを翻訳するためにGoogle翻訳に頻繁にアクセスして利用しているかもしれません。しかしこの場合は、エラーが繰り返し発生すると非効率的です。そこで、WebスクレイピングとGoogle翻訳を組み合わせることで、エラーメッセージの自動翻訳を実現する手法を提案します。
実行手順
以下は、エラーメッセージの自動翻訳を行うプログラムの手順です
- エラーメッセージをクリップボードにコピーします。
- エラーメッセージをGoogle翻訳の入力欄に貼り付けます。
- Google翻訳の自動翻訳が終わるまで少し待機します。
- 取得した日本語訳を表示します。
この手順はすべてプログラムで行い自動化します。
具体的なコード
以下のコードはseleniumのヘッドレスブラウザでグーグル翻訳のウェブページを開き、クリップボードに保持されたエラーメッセージをテキストエリアに貼り付けます。翻訳は自動で行われるので3秒ほど待機します。そのあとに翻訳されたテキストを取得し、printを使って表示します。
import requests, pyperclip, time
from selenium import webdriver
from selenium.webdriver.chrome.options import Options
def get_error_translation(error_message):
# エラーメッセージをGoogle翻訳に送る
chrome_options = Options()
chrome_options.add_argument("--headless") # ヘッドレスモードでブラウザを起動
driver = webdriver.Chrome(options=chrome_options)
driver.get("https://translate.google.com/?sl=en&tl=ja&op=translate")
input_box = driver.find_element_by_css_selector(".er8xn")
input_box.send_keys(error_message)
time.sleep(3)
# 翻訳結果を取得
translated_text = driver.find_element_by_css_selector(".lRu31").text
driver.quit()
return translated_text
def main():
# クリップボードからエラーメッセージを取得
error_message = pyperclip.paste()
# Google翻訳で日本語に翻訳
translated_text = get_error_translation(error_message)
# 翻訳結果を表示
print("Original Error Message:")
print(error_message)
print("\nTranslated Error Message:")
print(translated_text)
if __name__ == "__main__":
main()
このコードの注意点として英文を貼り付けるテキストエリアのクラス「ex8xn」と翻訳結果を表示しているラッパーのクラス名「lRu31」のクラス名が将来的に変わる、もしくは動的にクラス名が変わる可能性があることです。クラス名が変わった場合は要素が取得できないため、テキストを取得することもできなくなります。
また、chromeを更新した場合は最新のwebドライバーを用意しておかなければならないことです。chromewebドライバーのダウンロードは以下からダウンロードすることができます↓
まとめ
この記事では、Webスクレイピング-つまりSeleniumとGoogle翻訳を活用して、エラーメッセージを自動翻訳する手法について解説しました。英語に不慣れな開発者でもこのプログラムファイルをwindowsのタスクバーに固定化するなどすれば、翻訳を効率化できるかもしれません。
コメント