老师,为啥我这里seesion只获取了一个cookie的值呢

来源:5-6 用Python对Cookie进行持久化和装载复用(1)

慕函数5481370

2021-11-02

from lxml import etree
import requests
from Crypto.PublicKey import RSA
from Crypto.Cipher import PKCS1_v1_5 as PKCS15
import base64
import json
from fake_useragent import UserAgent
username = 'qqqqqqqq'
password = 'qqqqqqqq'

def getEncrypt(pk,psw):
    pk = "-----BEGIN PUBLIC KEY-----\n{}\n-----END PUBLIC KEY-----".format(pk)
    publickey = PKCS15.new(RSA.importKey(pk))
    password = base64.b64encode(publickey.encrypt(psw.encode())).decode()
    return password
url = 'http://shanzhi.spbeen.com/login/'
def getResponse(url,uname,psw):
    ua = UserAgent()
    headers = {
        "Cookie": "UM_distinctid=17c6d2b75ad19e-09a7dd1ef44d64-b7a1b38-144000-17c6d2b75ae16d; csrftoken=f4qGPAhFCBkEdqlvftGeUVNEobsYMigLb0CkM4KmXBmcVIWn6SjcA9RTl0vi6du8",
        "User-agent": ua.chrome
    }
    session = requests.session()
    get_request = session.get(url, headers=headers)
    html = etree.HTML(get_request.text)
    pk = html.xpath(".//input[@id='pk']/@value")[0]
    csrftoken = html.xpath(".//input[@name='csrfmiddlewaretoken']/@value")[0]
    miwen = getEncrypt(pk, psw)
    fromdata = {
        "username": uname,
        "password": miwen,
        "csrfmiddlewaretoken": csrftoken
    }
    get_response = session.post(url, headers=headers, data=fromdata)
    return get_response

get_response = getResponse(url,username,password)

cookie = get_response.cookies.get_dict()

{“shanzhi_kmer”: “0th8l8w3t76c4t6bfznqpvxp56w347c0”}

写回答

1回答

慕函数5481370

提问者

2021-11-02

呃呃,我知道错在哪了,老师获取的是session.cookie,我获取的是response的cookie。。。

0
0

Python高级爬虫实战-系统掌握破解反爬技能 挑战高薪

加密破解、逆向重构、分布式框架及海量存储方案

494 学习 · 105 问题

查看课程