我正在使用 Python 的 mechanize 将商品添加到亚马逊购物车中。在项目的产品页面上,您在表单的下拉菜单中选择数量并提交添加到购物车。
下拉菜单允许您从 1 到 30 中选择数量。
以下代码适用于添加数量为 1 到 30 的任何产品。但是,当我尝试添加大于 30 的数量时,即当下拉菜单中未明确表示该值时,它不起作用。
下拉菜单中的最大值 30 是人为约束。实际上,您最多可以添加 999 个项目而不会出现问题(使用 Firebug 提交大于 30 的值证实了这一点)。
我的问题-如何更改以下代码以成功提交未在下拉菜单中列为值的数量?
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'