Salut,

Je cherche à faire un script permettant de charger une page web, de remplir un formulaire de connexion, d'attendre la réponse et d'enfin récupérer une donnée sur la page chargée. Cette opération doit s'effectuée automatiquement à intervalle régulier (une fois par semaine par exemple). C'est strictement à usage personnel, donc mettons de côté l'aspect sécurité lié à l'identifiant et mot de passe.
J'ai écrit un script presque fonctionnel basé sur la bibliothèque mechanize. Presque fonctionnel car de temps en temps mon code me renvoi le message d'erreur:
Code : Sélectionner tout - Visualiser dans une fenêtre à part
HTTP Error 401: Authorization Required
Je dois avouer n'avoir aucune compétence en web. Mais si je charge l'url souhaitée via mon navigateur préféré, la page se charge normalement (à noter en https) et juste après si je relance mon script lui aussi est à son tour capable de charger la page...

Je me demande si ce ne serait pas lié à des problèmes de certificats (je dis peut-être une grosse connerie car je ne sais pas même ce qu'est vraiment un certificat). Je me dis que si Chrome ou Firefox peut charger l'url souhaitée (toujours la même), pourquoi mon script n'y parviendrais pas systématiquement?

Voici une version trèèèès épurée de mon code:

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
 
from bs4 import BeautifulSoup as bs
import mechanize
from base64 import b64encode 
 
URL = r'https://www.google.com'
LOGIN = 'login'
PWD = 'password'
 
# Create a browser object
browser = mechanize.Browser()
browser.set_handle_robots(False)
 
# Load web page
b64login = b64encode('%s:%s' % (LOGIN, PWD))
self.browser.addheaders.append(
    ('Authorization', 'Basic %s' % b64login)
    )
browser.open(self.url)
 
# ...
J