Здравствуйте. Имеется следующий алгоритм:
from bs4 import BeautifulSoup
from word2word import Word2word
from tqdm import tqdm
import nltk
tr = Word2word("en", "ru")
soup = BeautifulSoup(html, "lxml")
for tag in tqdm(soup.find_all()):
if tag.string:
try:
batch = nltk.word_tokenize(tag.string) # разделяем строку на слова
# переводим каждое слово, составляя полноценное предложение, и вписываем в тег
str_to_paste = ""
for i in batch:
str_to_paste += tr(i)[0] + " "
tag.string = str_to_paste
except:
continue
with open("index.html", "w", encoding = "utf-8") as file:
file.write(soup.prettify())
Проблема в том, что он съедает теги ссылок, в которых и должен быть текст.
Пример оригинальной html страницы(до перевода):
https://jsfiddle.net/7hnm2kwq/
Пример переведенной страницы html(после перевода):
https://jsfiddle.net/5ubnqw9L/