問題:想模擬web端請求,但是發現僅帶了登錄的session會報403,查看請求頭發現還需要攜帶csrftoken,所以開始研究csrftoken
csrftoken:為了防止跨站域請求偽造,有的網站請求中會加入這個驗證,在登錄及登錄后續的操作都會讓你攜帶csrftoken,問題在於csrftoken每次刷新界面都要發生變化,所以查到csrf生成的位置就是關鍵所在,有的網站會把csrftoken放在html代碼中返回給前端,這種找起來會比較簡單,但我想模擬的這個網站csrftoken獲取方式是這樣的:
1.請求中有一個類似csrf.js的請求,在返回的一堆js代碼中找到獲取csrftoken的方法,找到獲取csrftoken的網址;

2.然后編寫接口請求時每次請求前都要獲取一次csrftoken,提取出token;
'''
url_gettoken = "http:****/api/getcsrftoken"
h = httplib2.Http('.cache')
r,c = h .request(url_gettoken, 'GET')
ss = json.dumps(r)
sf =json.loads(ss)[u'set-cookie']
csrftoken = re.findall(r"csrftoken=(.+?);",sf)[0]
'''
3.然后在你下面的請求頭中加入csrftoken:
'''
openner1.addheaders.append(('X-CSRFToken',sc))
==================
作者:抓蟲的蝸牛
鏈接:https://www.jianshu.com/p/47b00ee963d2