Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/asp.net-mvc-3/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 在I';我在mechanize提交了一份表格?_Python_Forms_Mechanize - Fatal编程技术网

Python 在I';我在mechanize提交了一份表格?

Python 在I';我在mechanize提交了一份表格?,python,forms,mechanize,Python,Forms,Mechanize,使用mechanize(和python),我可以访问网站、登录、查找表单、填写一些答案并提交表单。但是,我不知道如何打开“响应”页面——也就是说,在您提交表单后自动加载的页面 下面是python代码: br.select_form(name="simTrade") br.form["symbolTextbox"] = "KO" br.form["quantityTextbox"] = "10" br.form["previewOrderButton"] preview = br.submit(

使用mechanize(和python),我可以访问网站、登录、查找表单、填写一些答案并提交表单。但是,我不知道如何打开“响应”页面——也就是说,在您提交表单后自动加载的页面

下面是python代码:

br.select_form(name="simTrade")
br.form["symbolTextbox"] = "KO"
br.form["quantityTextbox"] = "10"
br.form["previewOrderButton"]

preview = br.submit()
print preview.read
通过上面的代码,我可以看到响应页面包含的内容。但我真的想打开那个页面并与之互动。我怎样才能用mechanize做到这一点?多谢各位

编辑:所以我在发布这篇文章后很快就回答了自己的问题。代码如下:

br.select_form(name="simTrade")
br.form["symbolTextbox"] = symbol
br.form["transactionTypeDropDown"] = [order_type]
br.form["quantityTextbox"] = amount
br.form["previewOrderButton"]

no_url = br.submit()
final = no_url.geturl()
x = br.open(final)
print x.read()

要获取响应页面(提交表单时加载的页面)的html源代码,我只需获取br.submit()的url。还有一个内置的mechanize函数,geturl()

无需获取新页面的URL并打开它。提交表单后,新页面将自动打开,您可以使用相同的mechanize浏览器对象开始与其交互

使用问题中的原始代码,如果要提交表单并将新页面上的所有链接存储在列表中,请执行以下操作:

br.select_form(name="simTrade")
br.form["symbolTextbox"] = "KO"
br.form["quantityTextbox"] = "10"
br.form["previewOrderButton"]
br.submit()

# Here we store all links on the new page
# but we can use br do any necessary processing.
links = [link for link in br.links()]

# This will take us back to the original page with the "simTrade" form.
br.back()

OP的答案有点复杂,导致了
AttributeError
。这对我来说更有效:

br.submit()
base_url = br.geturl()
print base_url

我不明白,页面在默认情况下是否保持打开状态?页面确实保持打开状态,但我想获取该页面的url并通过Mechanize访问其html。通过这样做,我可以进一步与页面交互。将您的答案添加到页面底部的答案框
。并接受它