usar tipos script formularios formulario form enviar ejecutar desde datos avanzados python session login request

python - tipos - post django



¿Utiliza el módulo de solicitudes en Python para iniciar sesión en el fútbol de fantasía de la primera división de Barclays? (1)

Intento escribir un script de Python para permitirme iniciar sesión en mi cuenta de fútbol de fantasía en https://fantasy.premierleague.com/ , pero algo no está del todo bien con mi inicio de sesión. Cuando inicio sesión a través de mi navegador y compruebo los detalles usando las herramientas de desarrollador de Chrome, encuentro que la URL de solicitud es https://users.premierleague.com/accounts/login/ y los datos del formulario enviados son:

csrfmiddlewaretoken:[My token] login:[My username] password:[My password] app:plfpl-web redirect_uri:https://fantasy.premierleague.com/a/login

También hay un número de encabezados de Solicitud:

Accept:text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,*/*;q=0.8 Accept-Encoding:gzip, deflate, br Accept-Language:en-US,en;q=0.8 Cache-Control:max-age=0 Connection:keep-alive Content-Length:185 Content-Type:application/x-www-form-urlencoded Cookie:[My cookies] Host:users.premierleague.com Origin:https://fantasy.premierleague.com Referer:https://fantasy.premierleague.com/ Upgrade-Insecure-Requests:1 User-Agent:Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/52.0.2743.116 Safari/537.36

Así que escribí un script corto de Python usando la biblioteca de solicitudes para tratar de iniciar sesión y navegar a una página de la siguiente manera:

import requests with requests.Session() as session: url_home = ''https://fantasy.premierleague.com/'' html_home = session.get(url_home) csrftoken = session.cookies[''csrftoken''] values = { ''csrfmiddlewaretoken'': csrftoken, ''login'': <My username>, ''password'': <My password>, ''app'': ''plfpl-web'', ''redirect_uri'': ''https://fantasy.premierleague.com/a/login'' } head = { ''Host'':''users.premierleague.com'', ''Referer'': ''https://fantasy.premierleague.com/'', } session.post(''https://users.premierleague.com/accounts/login/'', data = values, headers = head) url_transfers = ''https://fantasy.premierleague.com/a/squad/transfers'' html_transfers = session.get(url_transfers) print(html_transfers.content)

Al imprimir el contenido de mi solicitud posterior, obtengo un error de código de respuesta HTML 500 con:

b''/n<html>/n<head>/n<title>Fastly error: unknown domain users.premierleague.com</title>/n</head>/n<body>/nFastly error: unknown domain: users.premierleague.com. Please check that this domain has been added to a service.</body></html>''

Si elimino el ''host'' de mi dict de cabeza, recibo un error de código de respuesta HTML 405 con:

b''''

Intenté incluir varias combinaciones de los encabezados de Solicitud en mi cabeza y nada parece funcionar.


Lo siguiente funcionó para mí. Simplemente eliminé headers = head

session.post(''https://users.premierleague.com/accounts/login/'', data = values)

Creo que estás tratando de elegir a tu equipo programáticamente, como yo. Tu código me hizo comenzar gracias.