Можно ли получить примеры предложений с переводами слов из Reverso Context с помощью модуля запросов? - PullRequest
1 голос
/ 21 февраля 2020

Мне нужно получить примеры предложений с переводами слов из Reverso Context .

Сначала я попытался получить полные данные страницы результатов:

import requests


print(requests.get("https://context.reverso.net/translation/english-russian/cat").text)

И у меня здесь проблема - сервер знает, что я обращаюсь к нему через бота: мое приложение не получает того, что мне нужно, и получает это, помимо прочего:

<p class="text" id="text-en" style="display: none">
          You've been denied access â IP blacklisted<br/>
          Your IP <b class="ip"></b> has been considered as sending illegitimate traffic to our servers.<br/>
          If you think your traffic is legitimate, please fill in the form below so we could investigate why you were blacklisted.<br/><br/>
          Thank you,<br/>
          The Reverso Team
</p>

Есть ли способ обмануть сервер и получить страницу с примерами?

PS: Я пытался найти Python API для этого веб-сайта, но ничего не смог найти.

Ответы [ 2 ]

3 голосов
/ 21 февраля 2020

Как только вы получите доступ к веб-сайту, вы можете найти примеры предложений, как это.

req = requests.get("https://context.reverso.net/translation/english-russian/cat", headers={'User-Agent': 'Mozilla/5.0'})

soup = BeautifulSoup(req.text, 'lxml')

sentences = [x.text.strip() for x in soup.find_all('span', {'class':'text'}) if '\n' in x.text]

>>> sentences[:4]
['My cat stepped on the remote.', 'Я не смотрю твои бредни, мой кот наступил на пульт.', 'Now imagine you have a cat...', 'А теперь представьте, что у вас есть кот...']
2 голосов
/ 21 февраля 2020

Сначала попробуйте изменить пользовательский агент в заголовках ваших запросов, чтобы выглядеть как обычный веб-браузер. См. https://2.python-requests.org/en/v1.0.4/user/quickstart/#custom -headers , заголовки пользовательских агентов Google.

...