Essayez de vous connecter sur ce site "websim.worldquantchallenge.com/login", mais les méthodes habituelles ne fonctionnent pas. Dans la plupart des cas et des sites Web, nous pouvons utiliser le formulaire suivant:

session = requests.session()
url = 'https://websim.worldquantchallenge.com/login'
data = {
    'EmailAddress': '<YOUR_MAIL>', 
    'Password': '<YOUR_PASS'
}
result = session.post(url, data = data)
print(result)

Mais dans cette situation, j'obtiens la "réponse 403".

Les modes d'authentification simples comme "HTTPBasicAuth" ou "HTTPDigestAuth" ne fonctionnent pas non plus. Alors, comment puis-je me connecter dans ce cas?

0
Paul 13 avril 2018 à 18:16

3 réponses

Meilleure réponse

Tout d'abord, vous devez vous assurer que la politique du site Web autorise la connexion via le code .

Si c'est le cas, l'url du message doit être:

url = 'https://websim.worldquantchallenge.com/login/process'
1
floatingpurr 13 avril 2018 à 15:27

Je suggère de vous connecter via le site Web avec les outils de développement activés et de regarder le contenu de la demande / réponse. Quelques raisons possibles pour ne pas pouvoir vous connecter en utilisant votre méthode habituelle:

  • le formulaire a changé (par exemple, 'EmailAddress' remplacé par 'Username', un nouveau champ dans le formulaire)
  • la méthode d'authentification a changé (par exemple nouvelle URL, OAuth2 ...)
  • le site Web empêche l'accès programmatique en filtrant sur user-agent ou en ajoutant des champs cachés dans le formulaire de connexion

Et, une question de base: avez-vous regardé le message d'erreur que vous obtenez avec le 403 (print(result.text))?

0
pills 13 avril 2018 à 15:25

Autant que je sache, le formulaire est géré par javascript, donc vous ne savez pas vraiment à quelle URL les données vont. Pour les problèmes avec les sites Web où la demande ne semble pas fonctionner, j'ai utilisé du sélénium. Il utilise le pilote chrome pour afficher la page dans le navigateur. Vous trouvez ensuite l'élément par classe ou id et remplissez le formulaire et cliquez sur soumettre.

De nombreux sites Web adoptent ce style d'interaction javascript pour empêcher le code automatisé de supprimer leur site. Je vois également du code pour captcha, vous devrez peut-être y faire face si cela se présente.

0
nicholas.reichel 13 avril 2018 à 15:24