Проблемы с формами, используя метод POST с Mechanize в Python - PullRequest
1 голос
/ 13 июня 2011

Я пытался заполнить форму с использованием mechanize в python, она не работала с обычной submit ().Каким-то образом механизму не удалось разобрать переключатели и нашел только 1 вместо 4. После этого я попытался написать запрос POST -

    data = {
        'localid' : '11755',
        'language' : '3',
        'code' : 'hello world',
    }
    page = browser.open( self.submiturl, urllib.urlencode( data) )

Но он вообще ничего не публикует.Я не уверен, что мне здесь не хватает, это правильный способ сделать POST?Есть ли другой способ заставить механизировать распознавать переключатели?

Мой полный код можно прочитать с по этой ссылке .

1 Ответ

2 голосов
/ 14 июня 2011

звучит так, как будто у механизатора возникли проблемы с анализом формы, попробуйте что-нибудь в этом духе

br = mechanize.Browser()
resp = br.open('your_url_here')
print resp.get_data() # if you want to see what's returned
# if you want to see the forms, so you can find the index of the
# form you want and check that is has all the fields, if it doesn't
# you should should parse the response with BeautifulSoup
for form in br.forms():
    print '---------------'
    print form
br.select_form(nr=0) # to select the first form
br['field_name'] = 'field_value'
br['select_field_name'] = ['select_field_value']
br.submit()
...