Python3之利用Cookie模擬登陸

Python3之利用Cookie模擬登陸html

利用Cookie模擬登陸步驟:正則表達式

1.       在瀏覽器輸入http://demo.bxcker.com,輸入用戶名和密碼登陸。瀏覽器

2.登陸成功點「客戶管理」模塊。服務器

 

3. 進入客戶管理模塊,顯示客戶列表。工具

 

4.經過抓包工具抓取客戶列表,獲得登陸後的Cookie信息。url

GET http://demo.bxcker.com/customer/index.shtml HTTP/1.1spa

Host: demo.bxcker.comcode

Connection: keep-aliveorm

Pragma: no-cachehtm

Cache-Control: no-cache

Accept: */*

X-Requested-With: XMLHttpRequest

User-Agent: Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/66.0.3359.139 Safari/537.36

Referer: http://demo.bxcker.com/

Accept-Encoding: gzip, deflate

Accept-Language: zh-CN,zh;q=0.9

Cookie: IEX-JSESSIONID=WFPlPUVbbbkQ76XPCr9tXRB4voK0eESo; Hm_lvt_4320d635415dcfd7831a11fa64aec173=1526347940; Hm_lpvt_4320d635415dcfd7831a11fa64aec173=1526347940; SPRING_SECURITY_REMEMBER_ME_COOKIE=UE9kSDFGMnVsS291S2Z2V1k5c1daQT09OjZxWFVDUUhoVmR2UTdsWnRFRnlZZ0E9PQ 

5.利用sublime text工具處理抓到的http請求頭信息替換成字典

 

選擇內容替換的方式是用正則表達式

內容填寫:^(.*):\s(.*)$  (須要把header文件內容處理成字典,中間有個空格,因此加個\s)

替換爲填寫:"\1":"\2",

點全換,處理完成以後變成以下:

"Host":"demo.bxcker.com",

"Connection":"keep-alive",

"Pragma":"no-cache",

"Cache-Control":"no-cache",

"Accept":"*/*",

"X-Requested-With":"XMLHttpRequest",

"User-Agent":"Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/66.0.3359.139 Safari/537.36",

"Referer":"http://demo.bxcker.com/",

"Accept-Encoding":"gzip, deflate",

"Accept-Language":"zh-CN,zh;q=0.9",

"Cookie":"IEX-JSESSIONID=WFPlPUVbbbkQ76XPCr9tXRB4voK0eESo; Hm_lvt_4320d635415dcfd7831a11fa64aec173=1526347940; Hm_lpvt_4320d635415dcfd7831a11fa64aec173=1526347940; SPRING_SECURITY_REMEMBER_ME_COOKIE=UE9kSDFGMnVsS291S2Z2V1k5c1daQT09OjZxWFVDUUhoVmR2UTdsWnRFRnlZZ0E9PQ",

6. 處理完成以後直接拷貝到Python定義的頭信息變量headers={}

 

7. 整理headers 信息(去掉一些沒用的,保留一些重要的)

 

"Connection":"keep-alive",

"X-Requested-With":"XMLHttpRequest",

"User-Agent":"Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/66.0.3359.139 Safari/537.36",

"Referer":"http://demo.bxcker.com/",

"Cookie":"IEX-JSESSIONID=WFPlPUVbbbkQ76XPCr9tXRB4voK0eESo; Hm_lvt_4320d635415dcfd7831a11fa64aec173=1526347940; Hm_lpvt_4320d635415dcfd7831a11fa64aec173=1526347940; SPRING_SECURITY_REMEMBER_ME_COOKIE=UE9kSDFGMnVsS291S2Z2V1k5c1daQT09OjZxWFVDUUhoVmR2UTdsWnRFRnlZZ0E9PQ",

 

8. 編寫完整的程序。

 

from urllib import parse

import urllib.request

 

url ="http://demo.bxcker.com/customer/index.shtml"

headers={

"Host":"demo.bxcker.com",

"Connection":"keep-alive",

"Pragma":"no-cache",

"Cache-Control":"no-cache",

"Accept":"*/*",

"X-Requested-With":"XMLHttpRequest",

"User-Agent":"Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/66.0.3359.139 Safari/537.36",

"Referer":"http://demo.bxcker.com/",

"Accept-Encoding":"gzip, deflate",

"Accept-Language":"zh-CN,zh;q=0.9",

"Cookie":"IEX-JSESSIONID=WFPlPUVbbbkQ76XPCr9tXRB4voK0eESo; Hm_lvt_4320d635415dcfd7831a11fa64aec173=1526347940; Hm_lpvt_4320d635415dcfd7831a11fa64aec173=1526347940; SPRING_SECURITY_REMEMBER_ME_COOKIE=UE9kSDFGMnVsS291S2Z2V1k5c1daQT09OjZxWFVDUUhoVmR2UTdsWnRFRnlZZ0E9PQ",

}

 

# url 做爲Request()方法的參數,構造並返回一個Request對象

request = urllib.request.Request(url)

# Request對象做爲urlopen()方法的參數,發送給服務器並接收響應

response = urllib.request.urlopen(request)

html = response.read().decode('utf-8')

print(html)

 

運行結果:

能夠看到客戶列表裏的相關信息,證實是經過Cookie登陸成功,而後跳轉到客戶管理模塊,獲取的客戶信息。

相關文章
相關標籤/搜索