2014-09-17 4 views
3

Я использую механику Python для добавления элементов в корзину для покупок Amazon. На странице продукта товара вы выберите «Количество» в раскрывающемся меню формы и отправьте «Добавить в корзину».Python Mechanize - Как отправить незарегистрированное значение в выпадающем меню

Раскрывающееся меню позволяет выбрать Количество от 1 до 30.

Следующего код работает для добавления какого-либо продукта с величинами 1 по 30. Однако, это не работает, когда я пытаюсь добавить количество больше 30, т. Е. Когда значение не выражено в раскрывающемся меню).

Максимальное значение 30 в раскрывающемся меню - искусственное ограничение. Фактически вы можете добавить до 999 элементов без проблем (используя Firebug для отправки значения, превышающего 30, подтверждает это).

Мой вопрос - как я могу изменить следующий код, чтобы успешно отправить количество NOT, указанное в качестве значения в выпадающем меню?

import mechanize 

br = mechanize.Browser() 
br.set_handle_robots(False) 
br.addheaders = [('User-agent', 'Mozilla/5.0 (X11; U; Linux i686; en-US; rv:1.9.0.1) Gecko/2008071615 Fedora/3.0.1-1.fc9 Firefox/3.0.1')] 

# Open an Amazon product page 
br.open('http://www.amazon.com/gp/product/B005KOKFR4/') 

# Add to Cart is form [1] 
br.select_form(nr=1) 

# Change quantity 
br.form['quantity'] = ['31'] 

# Submit form 
br.submit() 

print br.response().read() 

Если количество от 1 до 30, приведенный выше код работает. Когда величина 31 или более, ошибка:

mechanize._form.ItemNotFoundError: insufficient items with name '31' 

ответ

0

Кажется, что даже когда я пытаюсь вручную поместить в число больше 30, что не позволяет мне. Вы уверены, что разрешено до 999? Возможно, 30 - это максимальный размер заказа?

+0

Hi Matt. Да, максимальный размер заказа определенно 999, если в инвентаре достаточно товара. В примере кода этот продукт имеет около 700 в настоящее время в инвентаре. Если вы используете firebug для изменения одного из выпадающих меню значений, скажем, количество = 31, форма должна пройти успешно. Вы пытались с Firebug? – Max