Отправка формы с помощью mechanize (TypeError: ListControl, необходимо установить последовательность) - PullRequest
8 голосов
/ 06 февраля 2012

Я пытаюсь отправить форму с помощью mechanize, но натолкнулся на ошибку (TypeError: ListControl, должен установить последовательность). После поиска в течение некоторого времени и пробуя пару различных решений, я не смог решитьвопрос.Я пытаюсь отправить все поля.

Данные формы, полученные с помощью механизации (для f в br.forms () print: f)

<POST http://www.example.com/takeupload.php multipart/form-data
<HiddenControl(MAX_FILE_SIZE=1000000) (readonly)>
<TextControl(<None>=http://www.example.com:81/test.php?pass=550) (readonly)>
<FileControl(file=<No files added>)>
<TextControl(name=)>
<SelectControl(type=[*0, 23, 22, 1, 10, 7, 18, 4, 21, 56, 20, 60, 5, 19, 6, 55, 63, 9])>
<CheckboxControl(strip=[strip])>
<FileControl(nfo=<No files added>)>
<TextareaControl(descr=)>
<SubmitControl(<None>=Do it!) (readonly)>>

Мой текущий код

br.open('http://www.bitfarm.co.za/upload.php')

br.select_form(nr=4)

filename = 'test.torrent'
br.form.add_file(open(filename), 'application/x-bittorrent', filename, name='file') 
br.form['name'] = 'test'
br.form['type'] = '22'
br.form['strip'] = '0'
br.form['nfo'] = ''
br.form['descr'] = 'This is the desc'

br.submit()

Пожалуйста, помогитеи проверьте, что я использую правильный синтаксис для параметров формы.Спасибо

1 Ответ

13 голосов
/ 06 февраля 2012

type поле ожидает от вас список целых чисел, но вы предоставляете только одно целое число.
Измените это:

br.form['type'] = '22'

на это:

br.form['type'] = ['22',]
...