Bene, sto cercando di accedere a un sito utilizzando Python e mechanize.Invio di moduli con Mechanize (Python)
Ho il sito ha aperto:
site = br.open("http://example.com/login.php")
E io ho un elenco dei moduli (con br.forms).
<GET http://example.com/search.php application/x-www-form-urlencoded
<HiddenControl(search=1) (readonly)>
...
<POST http://example.com/login.php application/x-www-form-urlencoded
<TextControl(username=)>
<PasswordControl(password=)>
<CheckboxControl(stay=[1])>
<SubmitControl(<None>=Log in) (readonly)>>
Ho cercato di inviare i campi nome utente e password.
Ho provato a fare in questo modo:
br.select_form(nr=0)
br.form["username"] = 'usernamehere'
br.form["password"] = 'passwordhere'
br.submit()
poi ho capito che le forme che stavano cercando di colmare, non sono stati i primi sulla pagina, ma cambiando il 0 non ha aiutato con qualsiasi cosa. Cosa devo fare per selezionare il modulo su una pagina come questa?
Tuttavia! Questo non è l'unico problema.
quando l'eseguo, ottengo questo errore:
Traceback (most recent call last):
File "C:\Python26\login.py", line 34, in <module>
br.form["username"] = 'usernamehere'
...
ControlNotFoundError: no control matching name 'username'
Come posso risolvere questo problema? D: O lo sto facendo completamente storto? Se è il secondo, come potrei fare?
br.select_form (name = "username") restituisce un errore: FormNotFoundError: nessun modulo che corrisponde al nome 'username' - come prima, ma questa volta con la riga che ho appena aggiunto. – Matthew
sei sicuro di avere il nome giusto? prova per form in br.forms(): modulo di stampa – tovmeod
positivo. Ho controllato br.forms() e l'html grezzo. – Matthew