Автоматический перевод текста с помощью 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()
Вот таким образом мы получили программу, которая сама заходит на сайт, делает перевод и сохраняет его нам в файл.
Однако, обратите внимание, что часто сервисы проверяют запросы на предмет их совершения автоматическими программами — ботами
и показывают капчу. В таком случае, например, желательно останавливать работу программы на небольшие промежутки времени, чтобы бот не был
забанен.