我可以让mechanize.Browser在调用b.form.submit()后保持在同一页面吗?

3 投票
1 回答
1132 浏览
提问于 2025-04-15 18:34

在Python的mechanize.Browser模块中,当你提交一个表单时,浏览器实例会跳转到那个页面。但对于这个请求,我不想这样;我希望它能停留在当前页面,并把响应结果放在另一个对象里(方便后续处理)。有没有人知道怎么快速做到这一点?

编辑:嗯,我用ClientForm.HTMLForm.click()这个方法有点效果,它会返回一个urllib2的请求,但我需要mechanize的cookiejar里的cookies来用在我的urllib2.urlopen请求上。mechanize里有没有什么方法可以像urllib2那样发送请求,同时又能导入cookies?

1 个回答

7

我在标题里问的问题的答案是“是的”,可以用 mechanize.Browser.open_novisit() 来实现。这个方法的工作方式和 open() 一样,但它不会改变浏览器的状态——也就是说,它会获取页面,但你的浏览器对象的位置不会改变。

撰写回答