Cookie對于從事IT人員來說是必定會接觸的。Cookie由服務器端生成,發(fā)送給瀏覽器User-Agent,瀏覽器會將Cookie的key/value保存到文本文件內,下次請求同一網(wǎng)站時就發(fā)送該Cookie給服務器。官方給的解釋是:Cookie指某些網(wǎng)站為了辨別用戶身份、進行session跟蹤而儲存在用戶本地終端上的數(shù)據(jù)。 使用Cookie模擬登錄,創(chuàng)建一個帶有cookie的opener,在訪問登錄的URL時,將登錄后的cookie保存下來,然后利用這個cookie來訪問其他網(wǎng)址。查看登錄之后才能看到的信息。在HTTP包中,提供了cookiejar模塊,用于提供對Cookie的支持。 http.cookiejar功能強大,我們可以利用CookieJar類的對象來捕獲cookie并在后續(xù)連接請求時重新發(fā)送,來實現(xiàn)模擬登錄功能。 1、導入模塊:import urllib.request, urllib.parse, urllib.error,import http.cookiejar; 2、定義url和postdata參數(shù):url = 'http://www.******.com/login',values = {'username': '******', 'password': '******'},postdata = urllib.parse.urlencode(values).encode() 3、定義cookie和headers參數(shù):cookie=r'******',user_agent = r'******',headers = {'User-Agent': user_agent, 'Connection': 'keep-alive'} 4、創(chuàng)建帶有cookie的opener:cookie_filename = 'cookie.txt',cookie = http.cookiejar.MozillaCookieJar(cookie_filename),handler = urllib.request.HTTPCookieProcessor(cookie),opener = urllib.request.build_opener(handler) 5、請求金融系統(tǒng):get_request = urllib.request.Request(LOGIN_URL, postdata, headers),# get_url = 'https://user.******.com/' ,get_request = urllib.request.Request(get_url, headers=headers),get_response = urllib.request.urlopen(get_request) print(get_response.read().decode()) PS:Python技術無罪,請合理利用技術。 |
|
來自: 產(chǎn)品經(jīng)理朱學敏 > 《待分類》