def __init__(self): self._ordered_id = 0 self._curdir = os.getcwd() self._homedir = os.getenv('HOME', '.') self._custom = {} self._config = {} self._account = {} self._session = Session() self._logged = False self._login_data = {} self._task_pool = {} self._meta_infos = [] self.load_config() self._session.headers = { 'Accept': '*/*', 'Connection': 'Keep-Alive', 'User-Agent': self._custom.get('user_agent'), } cookies_path = expanduser(self._custom.get('cookies_path', '.')) self._session.cookies = cookielib.LWPCookieJar(cookies_path) if os.path.exists(cookies_path): self._msg('Loading cookies.') self._session.cookies.load()
def __save_cookie(self, username): """ 存储cookies, username用于文件命名 Parameters ---------- username: str 用户账号 Returns ------- None """ #实例化一个LWPcookiejar对象 new_cookie_jar = cookielib.LWPCookieJar(username + '.txt') #将转换成字典格式的RequestsCookieJar(这里我用字典推导手动转的)保存到LWPcookiejar中 requests.utils.cookiejar_from_dict( {c.name: c.value for c in self.s.cookies}, new_cookie_jar) #保存到本地文件 new_cookie_jar.save( 'cookies/' + username + '.txt', ignore_discard=True, ignore_expires=True)
def __read_cookie(self, username): """ 读取cookie :param username: :return: """ load_cookiejar = cookielib.LWPCookieJar() try: load_cookiejar.load('cookies/' + username + '.txt', ignore_discard=True) load_cookies = requests.utils.dict_from_cookiejar(load_cookiejar) self.s.cookies = requests.utils.cookiejar_from_dict(load_cookies) return True except Exception as e: return False
def __save_cookie(self, username): """ save cookies :param username: :return: """ new_cookie_jar = cookielib.LWPCookieJar() # 将转化成字典格式的cookie保存到LWPcookiejar中 requests.utils.cookiejar_from_dict( {c.name: c.value for c in self.s.cookies}, new_cookie_jar) new_cookie_jar.save('cookies/' + username + '.txt', ignore_discard=True, ignore_expires=True)
def __read_cookie(self, username): """ 读取cookies, username用于文件命名 Parameters ---------- username: str 用户账号 """ # 实例化一个LWPCookieJar对象 load_cookiejar = cookielib.LWPCookieJar() # 从文件中加载cookies(LWP格式) load_cookiejar.load("cookies/" + username + ".txt", ignore_discard=True, ignore_expires=True) # 工具方法转换成字典 load_cookies = requests.utils.dict_from_cookiejar(load_cookiejar) # 工具方法将字典转换成RequestsCookieJar,赋值给session的cookies. self.s.cookies = requests.utils.cookiejar_from_dict(load_cookies)
def __init__(self, username=None, password=None): self.username = username self.password = password self.login_data = { 'client_id': 'c3cef7c66a1843f8b3a9e6a1e3160e20', 'grant_type': 'password', 'source': 'com.zhihu.web', 'username': '', 'password': '', 'lang': 'en', 'ref_source': 'homepage', 'utm_source': '', } self.session = requests.session() self.session.headers = { 'User-Agent': 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_3) ' 'AppleWebKit/605.1.15 (KHTML, like Gecko) ' 'Version/12.0.3 Safari/605.1.15' } self.session.cookies = cookielib.LWPCookieJar(filename='./cookies.txt')