Tengo que raspar un sitio web, que requiere un token de inicio de sesión. El valor se reemplazará más tarde a través de JS. document.getElementById ('token'). value = '...

2
Asad 14 mar. 2021 a las 16:46

2 respuestas

La mejor respuesta

El siguiente código obtiene correctamente el token de inicio de sesión de su sitio web:

import requests
session_requests = requests.session()
html = session_requests.get("http://lms.uaf.edu.pk/login/index.php")
html = html.text
a = html.split("document.getElementById(\'token\').value=\'")[1]
b = a.split("'")[0]
1
knosmos 14 mar. 2021 a las 15:20

La razón por la que su código no funciona es que el navegador omite cualquier código html después de </html> (que básicamente cierra el documento), y BeautifulSoup obviamente fue diseñado de la misma manera, por lo que solo analiza todo dentro de {{X1 }}, y como la etiqueta <script> con el JavaScript que reemplaza el token de inicio de sesión viene después de la etiqueta </html> de cierre, BeautifulSoup no la analizará y, por lo tanto, usted no puedo conseguirlo. Debe guardar BeautifulSoup para este propósito y simplemente usar Python simple, como en la respuesta de @knosmos.

0
Programmer 14 mar. 2021 a las 15:16