Отправка форм с помощью Mechanize (Python)

Ну, я пытаюсь войти на сайт с помощью Python и механизировать.

У меня открыт сайт:

site = br.open("http://example.com/login.php")

И у меня есть список форм (с 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)>>

Я пытался ввести поля для имени пользователя и пароля.

Я попробовал сделать это так:

br.select_form(nr=0)
br.form["username"] = 'usernamehere'
br.form["password"] = 'passwordhere'
br.submit()

Затем я понял, что формы, которые я пытался заполнить, были не первыми на странице, но изменение 0 ни с чем не помогло. Что мне делать, чтобы выбрать форму на такой странице?

Однако! Это не единственная проблема.

Когда я запускаю его, я получаю такую ​​ошибку:

Traceback (most recent call last):
File "C:\Python26\login.py", line 34, in <module>
br.form["username"] = 'usernamehere'
...
ControlNotFoundError: no control matching name 'username'

Как я могу это исправить? Д: Или я делаю это совершенно неправильно? Если последнее, как мне это сделать?

8
задан Matthew 20 December 2011 в 04:46
поделиться