Я пытаюсь получить текст на персидском языке из Google Translate, и лучший тип кодировки для персидского - UTF-8.
Google Translate использует Javascript для рендеринга своих HTML кодов, поэтому я использую для этого модуль html-requests
.
У меня проблема с выводом, который я получаю каждый раз, либо когда я использую print()
, либо когда я пытаюсь записать его в файл . Оба способа дадут мне gibberi sh неперсидский текст, и я знаю, что это из-за кодировки или чего-то в этом роде.
Итак, я пытался изменить кодировку на utf-8
, когда мог, это мой код:
import requests_html
from bs4 import BeautifulSoup as BS
url = "https://translate.google.com/#view=home&op=translate&sl=en&tl=hy&text={}"
text = input("text: ")
session = requests_html.HTML(url=url.format(text), html='str')
session.render() # for executing js scripts
content = session.raw_html
soup = BS(content, "html.parser", from_encoding='utf-8')
table_rows = soup.find("table", "gt-baf-table").find_all('span')
# this is my way for write the output into a file
with open('file.txt', 'wb') as file:
for table_row in table_rows:
file.write(table_row.text.encode('utf-8'))
Это результат, который я получил для слова пробел :
nounտարածությունտարածությունspacedistanceareaspreadroomtractծավալծավալvolumesizemagnitudebulkspacecontentնստելատեղնստելատեղsiegespaceհեռավորությունհեռավորությունdistancelengthspaceintervalwayտևողությունտևողությունspacestanding
Примечание: Я пытался написать все кодов HTML, которые я получил из session.raw_html
, и в файл, затем найдите эти персидские тексты в коде HTML, но это привело к тому же, что и вышеприведенный вывод, я получил gibberi sh и бессмысленный текст .