• Python爬虫一些操作headers与cookies的便捷工具


    本篇文章主要是爬虫中常用的便捷处理方法整理,转载请注明出处

    #!/usr/bin/env python
    # -*- coding: utf-8 -*-
    # @Date    : 2018-08-14 13:07:06
    # @Author  : Sheldon (thisisscret@qq.com)
    # @blogs   : 谢耳朵的派森笔记
    # @Link    : https://www.cnblogs.com/shld/
    • 请求头headers转换为字典及优雅的字符串

    hd_str_fmt方法完全可以用hd_str2dct结合pprint代替,不过其用了sub模板替换的方法,有借鉴意义就保留下来

    import re
    
    def hd_str_fmt(s:str):
        '''把抓包工具的字符串请求头换成字典格式的字符串
        param s: 需要转换的请求头字符串
        return 格式化的字典字符串
        '''
        pattern = re.compile(r'^([^^s]+?)(:)(?:u0020+|)(B$|S[^$]*?$)',flags=re.M)
        return '{'+pattern.sub(r"'1'2 '3',", s).strip()+'
    }'
    
    
    def hd_str2dct(s:str):
        '''把抓包工具的字符串请求头换成字典
        param s: 需要转换的请求头字符串
        return 请求头字典
        '''
        pattern = re.compile(r'^([^^s]+?):(?:u0020+|)(B$|S[^$]*?$)',flags=re.M)
        return dict(pattern.findall(s))
    • cookies增加带有domain等参数的cookie
    import requests
    
    '''生成可定制其他参数的cookie
    可以用response.cookies的set_cookie或update方法装载
    '''
    cookie
    = requests.cookies.create_cookie(name, value, **kwargs)
    • cookies与字典相互转换
    import requests
    from functools import reduce
    from http.cookiejar import Cookie as Ck
    
    def cookies2dct(cookies):
            """RequestsCookieJar转换成dict"""
    
            cookie_list = []
            for cookie in iter(cookies):
                kw = cookie.__dict__
                if '_rest' in kw:
                    kw['rest'] = kw.pop('_rest')
                cookie_list.append(kw)
            return {'Cookies': cookie_list}
    
    def dct2cookies(dct):
        """将上述函数生成的dict转换成RequestsCookieJar"""
    
        cookies = requests.cookies.RequestsCookieJar()
        reduce(cookies.set,map(lambda kw: Ck(**kw),dct['Cookies']))
        return cookies
  • 相关阅读:
    Linux如何重复执行命令每隔几秒或者每隔几分钟
    Linux中如何在系统重启时执行命令或脚本
    如何重启Linux服务器
    Linux中30个有用的命令
    Linux中如何同时执行多个命令
    Linux中查看主机名的10种方法
    Linux中创建文件的10种方法
    Linux中cat命令的使用
    K8S最佳安装教程
    使用yum安装Golang
  • 原文地址:https://www.cnblogs.com/shld/p/9472287.html
Copyright © 2020-2023  润新知