Автоматический перевод текста с помощью Selenium в Python

Доброго времени суток! В данной статье я покажу Вам как можно автоматизировать
перевод (в примере — с английского на русский) небольших кусков текста с Selenium.

Проект создается в бесплатной среде разработки PyCharm Community Edition.
Помимо этого вам еще нужен будет скачанный драйвер браузера Chromium — вот
здесь Вы можете найти нужную версию: https://chromedriver.storage.googleapis.com/index.html.

Итак, для начала установим сам Selenium:


$ pip install selenium

Далее скачанный файл chromedriver положите в папку venv/bin (предполагается, что Вы работаете
в виртуальной среде, автоматически созданной при генерировании проекта PyCharm)

А теперь непосредственно код:


import time

from selenium.webdriver import Chrome
from selenium.webdriver.common.by import By

# чтение английского содержимого
def get_file_content(filename):
    with open(filename, 'r') as fd:
        return fd.read()

# запись полученного ответа
def write_file(filename, content):
    with open(filename, 'w') as fd:
        fd.write(content)

# сам перевод
def get_translate():
    driver = Chrome()
    # размер окна
    driver.set_window_size(1360, 860)
    # ссылка на сервис перевода
    driver.get("https://translate-service-url/")

    # засыпаем на 5 секунд
    time.sleep(5)

    driver.implicitly_wait(0.5)

    # читаем содержимое файла и отправляем его в форму перевода
    fakeArea = driver.find_element(by=By.ID, value="inputText")
    content = get_file_content('english.txt')
    fakeArea.send_keys(content)

    # ждем
    time.sleep(4)

    # получаем перевод
    translation = driver.find_element(by=By.ID, value="outputText")
    value = translation.get_attribute('textContent')

    # записываем в файл
    write_file('./output.txt', value)
    print("Перевод текста завершен")

    # выходим
    driver.quit()

if __name__ == '__main__':
    get_translate()

Вот таким образом мы получили программу, которая сама заходит на сайт, делает перевод и сохраняет его нам в файл.
Однако, обратите внимание, что часто сервисы проверяют запросы на предмет их совершения автоматическими программами — ботами
и показывают капчу. В таком случае, например, желательно останавливать работу программы на небольшие промежутки времени, чтобы бот не был
забанен.

Источник