【发布时间】:2016-05-25 01:00:36
【问题描述】:
基本上我想发送以下表单的 POST 请求。
<form method="post" action="">
449 * 803 - 433 * 406 = <input size=6 type="text" name="answer" />
<input type="submit" name="submitbtn" value="Submit" />
</form>
我基本上想要做的是通读页面,找出表单中的方程式,计算答案,输入答案作为参数发送 POST 请求,但不打开页面的新 URL,如每次打开页面时都会出现一个新方程,因此先前获得的结果已过时。最后,我想获取由于发送 POST 请求而出现的页面。我被困在必须发送 POST 请求而不打开新 URL 实例的部分。另外,我将不胜感激有关如何在 POST 请求后再次通读该页面的帮助。 (打电话给read() 就够了吗?)
我目前的python代码看起来像这样。
import urllib, urllib2
link = "http://www.websitetoaccess.com"
f = urllib2.urlopen(link)
line = f.readline().strip()
equation = ''
result = ''
file1 = open ('firstPage.html' , 'w')
file2 = open ('FinalPage.html', 'w')
for line in f:
if 'name="answer"' in line:
result = getResult(line)
file1.write(line)
file1.close()
raw_params = {'answer': str(result), 'submit': 'Submit'}
params = urllib.urlencode(raw_params)
request = urllib2.Request(link, params)
page = urllib2.urlopen(request)
file2.write(page.read())
file2.close()
【问题讨论】: