Проблемы с формами, используя метод POST с Mechanize в Python

1

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

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

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

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

  • 1
    Вы пытались проверить, является ли созданный URL правильным или нет? Попробуйте следующие ссылки: nullege.com/codes/search/mechanize.Browser.open и / или nullege.com/codes/search/mechanize.urljoin для получения дополнительной информации.
  • 0
    Я думаю, что URL-адрес правильный. И я не использую GET, я использую POST. Благодарю.
Теги:
forms
post
mechanize
radio-button

1 ответ

2
Лучший ответ

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

br = mechanize.Browser()
resp = br.open('your_url_here')
print resp.get_data() # if you want to see what 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()
  • 0
    Большое спасибо. Это сработало. После того, как я написал, использовал ваши кнопки.

Ещё вопросы

Сообщество Overcoder
Наверх
Меню