我有一个生成必须回答的等式的链接。 要做到这一点,我正在尝试阅读返回的http以找到这些数字
import urllib2, urllib
url = 'http://someurl.com'
answerRegexp = re.compile('''(\d+)\s([+-])\s(\d+)\s=\s<input name="answer"''')
response = urllib2.urlopen(url)
html = response.read()
res = answerRegexp.findall(html)[0]
values = {'field1': 'value1',
'field2': 'value2',
'answer': eval("%s%s%s" % (res[0], res[1], res[2])) # 2+3 for example
}
data = urllib.urlencode(values)
req = urllib2.Request(url, data)
response = urllib2.urlopen(req)
the_page = response.read()
这不起作用,因为data
正在创建另一个生成新等式的请求,因此计算出的值与正确答案不匹配。
答案 0 :(得分:1)
您正在使用的网站可能正在使用您需要来回传递的会话Cookie,以便识别上一个会话(从而阻止生成新的质询)。请考虑使用请求库http://docs.python-requests.org/en/latest/,它将为您处理所有这些。