[Python] Automatizzare inserimento dati su pagina web

girolamo girolamo.nellesca a gmail.com
Sab 29 Nov 2014 17:49:34 CET


Il 29/11/2014 10:50, Gollum1 ha scritto:
> Il 25 novembre 2014 05:24, Marco De Paoli <depaolim a gmail.com> ha scritto:
>
>> ovviamente rimangono validi i consigli già dati di di
>> reverse-ingenerizzare tutto quanto inviato da browser (Tamper Data,
>> Copy as cURL, etc.)
> Ok, ho finalmente avuto qualche minuto (veramente pochi) di tempo, e
> ho registrato, con un plugin per la registrazione dello scambio degli
> headers di firefox, una intera sessione di login, modifica del numero
> e logout...


scusa se rispondo tardi, ma c'e' qualche ragione particolare per cui
non stai usando la libreria mechanize?

http://wwwsearch.sourceforge.net/mechanize/

nel tuo caso dovrebbe essere sufficiente un'approccio del genere:

import re
import mechanize
from mechanize import ParseResponse, urlopen, urljoin

# baseurl
uri = "http://www.esempio.it/"

# chiami la pagina di login
request = mechanize.Request(mechanize.urljoin(uri, "login"))
response = mechanize.urlopen(request)

# selezioni il form
forms = ParseResponse(response, backwards_compat=False)
form = forms[0]

# compili il form con le credenziali
form['username'] = 'antani'
form['password'] = 'antani'

# submit
urlopen(form.click())

# chiami la pagina contente il form che ti interessa
request = mechanize.Request(mechanize.urljoin(uri, "form-contatti"))
response = mechanize.urlopen(request)

# selezioni il form
forms = ParseResponse(response, backwards_compat=False)
form = forms[0]

# compili il form
form['first_name'] = 'Mario'
form['last_name'] = 'Rossi'
form['phone'] = '0123456789'

# submit
urlopen(form.click())




Maggiori informazioni sulla lista Python