[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