このブログではPythonを使ったスクレイピングを、初心者向けにサンプルコード付きで解説しています。以下に紹介する記事では、①から⑨のステップでスクレイピングの方法を学び、実践に役立てられるよう体系的にまとめています。
【①〜⑨まとめ】PythonでWebスクレイピングを実践する方法【サンプルコード付き】
このブログではPythonスクレイピングを初心者向けに解説していきます。順番に各記事で解説しており入門者向けです。サンプルコード付きで解説するので実践的…
この記事では取得したスクレイピングデータを翻訳したい場合に使える翻訳API関数を解説します。
Pythonで使える翻訳APIにはいくつかの選択肢がありますが、ほとんどの場合制限があったり、有料プランが存在したり、利用するために登録が必要だったりと面倒です。
ここではGoogleの翻訳API(googletransパッケージ)を使用して、指定されたテキストを指定の言語に翻訳する関数を紹介します。
なお、googletrans ライブラリは、Google Translateの非公式なPythonパッケージであり、
・Google側の文字数制限やリクエスト回数の制限がある
・5000文字以上は分割して翻訳する必要がある
・短期間に大量のリクエストを送るとブロックされる可能性がある
らしいです。非公式のため利用については各自ご判断ください。ここではあくまで参考として紹介しています。
翻訳API
1 2 3 4 5 6 7 8 9 10 |
from googletrans import Translator # 翻訳時に出力するデフォルト言語 en,ja,esなど output_lang = "ja" # 翻訳API def translate_text(text, dest_language = output_lang): translator = Translator() # Translator クラスのインスタンスを作成 translated_text = translator.translate(text, dest=dest_language) # テキストを指定された言語に翻訳 return translated_text.text # 翻訳されたテキストを返す |
以下、コード解説です。
・output_lang: 翻訳のデフォルト言語を設定(ここでは日本語 “ja”)。
・translate_text(): テキストを翻訳するための関数。
・text: 翻訳したい文字列。
・dest_language: 翻訳先の言語(指定がなければデフォルトで日本語)。
・Translator(): 翻訳を実行するクラスのインスタンス。
・translated_text = translator.translate(): テキストを指定された言語に翻訳。
・return translated_text.text: 翻訳された結果を返す。
実際に翻訳してみましょう。
1 2 3 4 5 |
sample_text = "This is sample text." print(translate_text(sample_text)) # 結果 これはサンプルテキストです。 |
引数には翻訳したい変数や、スクレイピング時に取得した要素を入力します。output_langをjaにしているので、元の言語を自動で検知し、日本語に翻訳してくれます。
1 2 3 4 5 |
sample_text2 = "これはサンプルテキストです。" print(translate_text(sample_text2, 'en')) # 結果 This is sample text. |
日本語を外国語に翻訳したい場合、オプション引数に翻訳したい言語を入力します。これで日本語が英語になりました。
試しに少し長めの英文を翻訳してみましょう。
1 2 3 4 5 |
sample_text3 = "Yesterday, I went for a walk in the park. The weather was sunny but not too hot, and the trees provided just the right amount of shade. I sat by the pond for a while, watching the ducks swim around. It was a peaceful break from a busy week, and I felt refreshed by the time I left." print(translate_text(sample_text3)) # 結果 昨日、私は公園に散歩に行きました。天気は晴れていましたが、暑すぎず、木々が適度な日陰を提供してくれました。私はしばらく池のそばに座って、アヒルが泳ぎ回るのを眺めていました。忙しい一週間からの穏やかな休暇となり、帰る頃にはリフレッシュされた気分でした。 |
問題なく翻訳が出来ていますね。外国語のデータをスクレイピングする際、後で翻訳するのは面倒なので上記の翻訳API関数をデータ書き込み前に実施することで、日本語のデータが完成します。
ただし今回の方法は非公式なPythonパッケージなので、Google Cloud Translation APIなどを利用したほうがいいと思います。