Red de conocimiento informático - Espacio del host - Quiero escribir un programa en Python para iniciar sesión en el sitio web en lotes y, después de iniciar sesión, especificar una URL para determinar si la página web es lo que quiero y luego colocar mi información de inicio de sesión en mi sitio web.

Quiero escribir un programa en Python para iniciar sesión en el sitio web en lotes y, después de iniciar sesión, especificar una URL para determinar si la página web es lo que quiero y luego colocar mi información de inicio de sesión en mi sitio web.

Seguiremos los siguientes pasos:

Extraer los datos requeridos para iniciar sesión

Realizar un inicio de sesión en el sitio web

Obtener los datos requeridos

En Para este tutorial, utilicé los siguientes paquetes (que se encuentran en requisitos.txt):

solicitudes

lxml

Paso 1: Investiga el sitio web

Abra la página de inicio de sesión

Vaya a la siguiente página "". Verá la página que se muestra a continuación (si ya ha iniciado sesión, cierre la sesión)

Mire detenidamente los detalles que necesitamos extraer para iniciar sesión

En esta sección, A Se creará un diccionario para contener los detalles utilizados para realizar el inicio de sesión:

1. Haga clic derecho en el campo "Nombre de usuario o correo electrónico" y seleccione "Ver elemento". Usaremos el valor del cuadro de entrada con el atributo "nombre" como "nombre de usuario". Nombre de usuario" sería el valor clave y nuestro nombre de usuario/correo electrónico sería el valor correspondiente (en otros sitios podrían ser "correo electrónico", "nombre_usuario", "iniciar sesión", etc.).

2. Derecha -Haga clic en el campo "Contraseña" y seleccione "Ver elemento". En el script, debemos usar el atributo "nombre" como valor del cuadro de entrada "Contraseña". "Contraseña" será el valor clave del diccionario. Y la contraseña que ingresemos será el valor correspondiente (en otros sitios web, el valor clave puede ser "contraseña de usuario", "contraseña de inicio de sesión", "contraseña", etc.).

3. En la página del código fuente, busque un token de entrada oculto llamado "csrfmiddlewaretoken". csrfmiddlewaretoken" será el valor clave y el valor correspondiente será el valor de entrada oculto (en otros sitios, el valor podría ser un token de entrada oculto llamado "csrftoken", "authenticationtoken", "authenticationtoken", etc.) "authenticationtoken" " ). Por ejemplo, "Vy00PE3Ra6aISwKBrPn72SFml00IcUV8".

Finalmente, obtendremos el siguiente diccionario:

payload = {

"Username":"",

"Contraseña":"",

" csrfmiddlewaretoken":""

}

Tenga en cuenta que esto es específico de este sitio. Si bien este formulario de inicio de sesión es simple, otros sitios pueden requerir que verifiquemos los registros de solicitudes del navegador y busquemos las claves y valores relevantes que deben usarse en el paso de inicio de sesión. p >

Paso 2: Ejecutar inicio de sesión en el sitio web

Para este script, solo necesitamos importar lo siguiente:

solicitudes de importación

desde lxml import html

p>

Primero, crearemos el objeto de sesión. Este objeto nos permitirá guardar todas las solicitudes de sesión de inicio de sesión

session_requests = request.session()

En segundo lugar, crearemos el objeto de sesión. Extraeremos la etiqueta csrf de la página utilizada al iniciar sesión. En este ejemplo, usaremos lxml y xpath para extraerlo, también podemos usar expresiones regulares u otros métodos para extraer estos datos.

login_url = ""

resultado = session_requests.get(login_url)

árbol = html.fromstring(result.text)

authenticity_token = list(set(tree.xpath("//input[@name='csrfmiddlewaretoken']/@value"))[0]

A continuación, realizamos la fase de inicio de sesión. En esta fase, Enviaremos una solicitud POST a la URL de inicio de sesión y usaremos la carga útil creada en el paso anterior como datos. También puede usar un encabezado para la solicitud y agregar una clave de referencia en el encabezado

resultado. .post(

login_url,

datos = carga útil,

encabezados = dict(referer=login_url)

)

Paso tres: Obtener contenido

Ahora que hemos iniciado sesión correctamente, realizaremos la búsqueda real desde la página del panel de Bitbucket

url = ''

.

resultado = session_requests.get(

url,

headers = dict(referer = url)

)

Para Para Para probar la funcionalidad anterior, tomamos el contenido de la página del panel de bitbucket. Usaremos nuevamente xpath para encontrar el elemento de destino, borraremos el texto y los espacios en la nueva línea e imprimiremos el resultado. estar en la cuenta de bitbucket/lista de elementos

tree = html.fromstring(result.content)

bucket_elems = tree.findall(". //span[@class=). 'repo-name'] /")

bucket_names = [bucket.text_content.replace("n", "").strip() para depósito en bucket_elems]

imprimir nombres de depósito

También puede verificar los resultados de estas solicitudes verificando el código de estado devuelto por cada solicitud. No siempre le permite saber si la fase de inicio de sesión fue exitosa, pero puede usarse como indicador de verificación. .

Por ejemplo:

result.ok # nos dirá si la última solicitud fue exitosa

result.status_code # devolverá el estado de la última solicitud

Eso es todo.