J'ai du code qui utilise mechanize et un site protégé par mot de passe. Je peux me connecter très bien et obtenir les résultats que j'attends. Cependant, une fois que je me connecte, je ne veux pas cliquer sur les liens que je veux parcourir dans une liste d'URL. Malheureusement, chaque appel .open() reçoit simplement une redirection vers la page de connexion, ce qui est le comportement auquel je m'attendrais si je m'étais déconnecté ou essayé de me connecter avec un navigateur différent. Cela m'amène à croire qu'il s'agit d'une sorte de manipulation des cookies, mais je suis à court d'idées.python et mechanize.open()
def main():
browser = mechanize.Browser()
browser.set_handle_robots(False)
# The below code works perfectly
page_stats = login_to_BOE(browser)
print page_stats
# This code ALWAYS gets the login page again NOT the desired
# behaviour of getting the new URL. This is the behaviour I would
# expect if I had logged out of our site.
for page in PAGES:
print '%s%s' % (SITE, page)
page = browser.open('%s%s' % (SITE, page))
page_stats = get_page_statistics(page.get_data())
print page_stats
Est-ce que le premier travail d'appel ouvert et tous les appels séquentiels arrivent sur la page de connexion, ou est-ce que tout le monde tape sur la page de connexion? – ahawker
le premier appel est géré dans l'appel login_to_BOE() et il fonctionne exactement comme prévu. Tous les appels dans la boucle for renvoient la page de connexion (avec un paramètre ajouté qui indique l'URL à rediriger vers une connexion réussie). – rhacer