Mon problème est le suivant : J'essaie d'écrire un scraper qui parcourt le processus de commande d'un site web de billetterie aérienne. Je veux donc scraper quelques pages qui dépendent des résultats des pages précédentes (j'espère que vous comprenez ce que je veux dire). J'en suis là pour l'instant :
import mechanize, urllib, urllib2
url = 'any url'
br = mechanize.Browser()
br.set_handle_robots(False)
br.addheaders = [('User-agent', 'Mozilla/5.0 (Windows NT 5.2; WOW64) AppleWebKit/536.11 (KHTML, like Gecko) Chrome/20.0.1132.47 Safari/536.11')]
br.open(url)
response = br.response().read()
br.select_form(nr=1)
br.form.set_all_readonly(False)
## now I am reading out the variables of form(nr=1)
for control in br.form.controls:
if not control.name:
print " - (type) =", (control.type)
continue
print " - (name, type, value) =", (control.name, control.type, br[control.name])
## now I am modifying the variables
br['fromdate'] = '2012/11/03'
br['todate'] = '2012/11/07'
## now I am submitting the form and saving the output in the variable bookingsite
response = br.submit()
bookingsite = response.read()
Et voici mon problème : comment puis-je utiliser la variable bookingsite, qui contient à nouveau un formulaire que je veux modifier et soumettre, comme une URL normale ? En mettant simplement
br.open(bookingsite)
? ?? Ou existe-t-il un autre moyen de modifier et de soumettre la sortie (puis de soumettre à nouveau la sortie et de recevoir la nouvelle page de sortie) ?