用同一个cookies构造两次请求,从第一次请求中提取http数据包head的信息,在经过MD5加密,最后构造第二次POST请求发送并获取响应页面。
# -*- coding:utf-8 -*-
import urllib2,urllib,cookielib,hashlib
req = urllib2.Request('目标url')
#将cookie与opener绑定,原因是让两次请求用相同cookie
cj = cookielib.CookieJar()
opener = urllib2.build_opener(urllib2.HTTPCookieProcessor(cj))
#第一次请求
response=opener.open(req)
#获取password
pwd=response.headers["PassWord"]
#进行MD5加密
m=hashlib.md5()
m.update(pwd)
pwd=m.hexdigest().upper()
#第二次请求
url="目标url"
values={'pwd':pwd}
data=urllib.urlencode(values)
req=urllib2.Request(url,data)
response=opener.open(req)
html = response.read().decode('utf-8')
#输出页面
print html