获取url值并将它们发送回python中的地址

时间:2016-01-01 15:59:58

标签: python http httprequest urllib2 urllib

我有一个生成必须回答的等式的链接。 要做到这一点,我正在尝试阅读返回的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正在创建另一个生成新等式的请求,因此计算出的值与正确答案不匹配。

1 个答案:

答案 0 :(得分:1)

您正在使用的网站可能正在使用您需要来回传递的会话Cookie,以便识别上一个会话(从而阻止生成新的质询)。请考虑使用请求库http://docs.python-requests.org/en/latest/,它将为您处理所有这些。