LoginSignup
3
5

More than 5 years have passed since last update.

Selenium+PhantomJSで無料の翻訳APIっぽいことを実現する

Last updated at Posted at 2017-12-19

はじめに

精度の高い翻訳APIを利用しようとすると、どうしても有料のAPIということになってしまい苦学生にはなかなか厳しい…

そこでをSelenium+PhantomJSで無料で翻訳APIっぽいことを実現します。

準備

今回はPython3.6で実装していきます。

まず作業用のディレクトリを作成します。

$ mkdir free_translate
$ cd free_translate

Seleniumをインストールします。

$ pip install selenium

PhantomJSをインストールします。

$ npm install phantomjs --save

コード

translate.py
from selenium import webdriver
import time
import sys
import os

def translate(q):
    url = 'https://translate.google.co.jp/?hl=ja&tab=TT#ja/en/'

    user_agent = 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_13_0) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/62.0.3202.94 Safari/537.36'
    pjs_path = 'node_modules/phantomjs/bin/phantomjs'
    dcap = {
        "phantomjs.page.settings.userAgent": user_agent,
        'marionette': True
    }
    log_name = os.path.abspath(os.path.dirname(__file__)) + '/ghostdriver.log'
    driver = webdriver.PhantomJS(executable_path=pjs_path, desired_capabilities=dcap, service_log_path=log_name)
    driver.get(url)
    input_form = driver.find_element_by_id('source')
    input_form.send_keys(q)
    time.sleep(0.5 * len(q))
    result_form = driver.find_elements_by_id('result_box')
    result = ''
    for i in result_form:
        if i.text:
            result = i.text
            break
    driver.quit()
    return result

if __name__ == '__main__':
    print(translate(' '.join(sys.argv[1:])))

実行

$ python translate.py こんにちは世界
Hello world

実行すると初回警告が出ますが許可して大丈夫です。

最後に

無料で翻訳できましたが、とにかく遅い。APIを使うほうが現実的だと思います。

3
5
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
3
5