request post 模擬登入 csdn 獲取儲存cookie
阿新 • • 發佈:2019-01-27
# -*- coding=utf-8 -*- import requests from lxml import etree headers = { 'User-Agent': 'Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/59.0.3071.86 Safari/537.36', } url = 'https://passport.csdn.net/account/login' z = requests.get(url,headers=headers) sel = etree.HTML(z.content) csrf_token = sel.xpath('//input[@name="lt"]/@value')[0] execution = sel.xpath('//input[@name="execution"]/@value')[0] formdata = { 'username':'賬號', 'password':'密碼', 'rememberMe' : 'true', 'lt':csrf_token, 'execution':execution, '_eventId':'submit', } s = requests.post(url=url,data=formdata,headers=headers) print s.cookies #獲取伺服器返回的cookie 但是獲取的是一個cookie物件 。可以用下面轉化為字典cookies = requests.utils.dict_from_cookiejar(s.cookies) r3 = requests.get("http://my.csdn.net", headers=headers, cookies=cookies) print r3.text