Necesito obtener oraciones de ejemplo con las traducciones de las palabras de Contexto Reverso.

En primer lugar, intenté obtener todos los datos de la página de resultados:

import requests


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

Y tengo un problema aquí: el servidor sabe que estoy accediendo a él a través de un bot: mi aplicación no obtiene lo que necesito y lo consigue entre otras cosas:

<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>

¿Hay alguna manera de engañar al servidor y obtener la página con ejemplos?

P.S .: Traté de encontrar una API de Python para este sitio web, pero no pude encontrar nada.

1
Demian Wolf 21 feb. 2020 a las 18:54

2 respuestas

La mejor respuesta

Primero intente cambiar el agente de usuario en sus encabezados de solicitud para que parezca un navegador web normal. Consulte https: //2.python-requests. org / es / v1.0.4 / user / quickstart / # custom-headers, encabezados de agente de usuario de Google.

2
AutomaticStatic 21 feb. 2020 a las 16:02

Una vez que pueda acceder al sitio web, puede encontrar las oraciones de ejemplo como esta.

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
alec 21 feb. 2020 a las 16:17