用同一個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