2011-08-22 53 views
1

我想打开一个页面,然后找到一个数字并乘以另一个随机数字,然后将其提交到页面因此,我正在做的是将页面保存为html,然后找到2个数字相乘它然后发送它作为一个职位,但Python urllib2发送帖子

post = urllib.urlencode({'answer': goal, 'submit': 'Submit+Answer'}) 
req2 = urllib2.Request("example", None, headers) 
response = urllib2.urlopen(req, post) #this causes it not to work it opens the page a second time 

这使得连接第二个时间,因此发送的随机数是错误的,因为它使一个新的随机数,所以我怎么能发送POST请求一个网页,我已经打开而不重新打开它?

+0

HTTP协议是无状态的。每个HTTP GET和HTTP POST都是一个单独的请求。我相信你的设计/思考失败了。如果你想要有状态的协议,你需要使用cookies和会话。 –

+0

我有Cookie让我登录我没有发布整个脚本 – milespowers

回答

0

我不相信urllib支持保持连接打开,如described here

看起来你必须发送一个引用到原来的计算回你的文章。或者在答案的同一时间将数据发回,因此服务器有一些匹配问题和答案的方法。

+0

我看到我可以用httplib做到这一点? – milespowers

4

你可能想要使用类似mechanize的东西,它可以启用Python中的状态网页浏览功能。您可以使用它来加载URL,从页面读取值,执行乘法,将该数字放在页面上的表单中,然后提交。

这听起来像你想要做的? This page提供了一些关于如何使用mechanize填写表格的信息。

+0

是的,非常感谢 – milespowers

+1

如果回答你的问题,不要忘了标记答案是正确的。 –