Соскоб Google Translate Python - PullRequest
0 голосов
/ 12 января 2019

Как вызов самому себе, я пытаюсь отказаться от переводов из Google Translate. Я загружаю html-файл по запросу, смоделированному браузером, а затем с помощью BeautifulSoupe 4 пытаюсь найти перевод в html-коде. Проблема в том, что, хотя я могу найти то, что хочу в Chrome WebDev Mode, я не могу сделать это в Python или с помощью другой программы, такой как noteblock. Вот мой код:

while Translating==True:
text=input(("Values to translate:"))
#CREATING URL TO SCRAP
translator_url_with_translation_embebed= translator_url+ EncodeTexttoURL(text)
#REQUESTING PAGE WITH FAKE HEADERS (avoiding no browser detection)
url = translator_url_with_translation_embebed
headers = {'User-Agent': 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_10_1) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/39.0.2171.95 Safari/537.36'}
response= requests.get(url, headers=headers)
print(response.content)
#ANALISING RESPONSE FOR FURTHER USE
sopa = BeautifulSoup(response.content)

translation_location=sopa.find_all('span', {'class' : 'tlid-translation translation'})
print("TRANSLATED LOCATIOON")
print(translation_location

` translation_location выводит пустой список.

Режим разработки браузера с переводом в HTML-код:

Browser Dev mode showing translation in html code

Как я могу их найти? Переводы в другом месте? Разве Google послал измененную версию своего сайта, чтобы обмануть меня ?!

Спасибо за помощь

1 Ответ

0 голосов
/ 12 января 2019

переведенное слово приходит из XMLHttpRequest, и Beautifulsoup не может справиться с этим. продублируйте запрос (сложный) или используйте Selenium. Но я думаю, проще использовать библиотеку googletrans .

$ pip install googletrans

тогда ваш код

from googletrans import Translator

while Translating==True:
    translator = Translator()
    text=input(("Values to translate:"))
    translation = translator.translate(text, dest='en')
    print(translation.text)
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...