Python request封装cookie

发布时间 2023-04-14 16:01:07作者: 慕容峻才
import requests
import hashlib
import logging

logging.basicConfig(level=logging.DEBUG,format="%(asctime)s  %(levelname)s  %(message)s")
class API:
    def __init__(self, host, username, password):
        self.user = username
        self.host = host
        self.data = { 'username': username, 'password': self.generatePassword(password) }
        self.url = f'http://{host}'
        self.login_url = f'http://{host}/login'
        self._session = requests.Session()
        self._cookie = None

        if not self._cookie:
            self.login()

        if self._cookie:
            self._session.cookies.update(self._cookie)

    def generatePassword(self,password):
        md5 = hashlib.md5()
        md5.update(password.encode('utf-8'))
        return md5.hexdigest()

    def login(self):
        response = requests.post(url=self.login_url, data=self.data)
        if response.status_code == 200:
            logging.debug(f"用户{self.user}登录成功")
            #通过浏览器获取cookie的key
            self._cookie = { 'xxxxxxx': ''.join(response.cookies.values()) }
        else:
            logging.error(f"用户{self.user}或密码错误")

        return self._cookie