吾爱破解 - 52pojie.cn

 找回密码
 注册[Register]

QQ登录

只需一步,快速开始

查看: 1768|回复: 10
收起左侧

[Python 原创] headers的解析

  [复制链接]
话痨司机啊 发表于 2023-3-3 00:04
本帖最后由 话痨司机啊 于 2023-3-3 00:29 编辑

源码:
[Python] 纯文本查看 复制代码
'''
decs:headers 解析
date:2023年3月3日
author:话痨司机啊
---------------------------------
#### ex:
Accept-Ranges: bytes
Access-Control-Allow-Origin: *
Access-Control-Expose-Headers: X-Log, X-Reqid
Access-Control-Max-Age: 2592000
Age: 32250
Cache-Control: public, max-age=31536000
Content-Disposition: inline; filename="simditor.min.css"; filename*=utf-8''simditor.min.css
Content-Encoding: gzip
Content-Transfer-Encoding: binary
Content-Type: text/css
Date: Wed, 01 Mar 2023 15:44:44 GMT
ETag: "Fq0k2xlUKeux0jOY_wLkd036Cer2"
Last-Modified: Sun, 12 Feb 2017 15:33:30 GMT
Ohc-Cache-HIT: hg2un62 [2], wzix97 [2]
Ohc-File-Size: 10362
Ohc-Global-Saved-Time: Wed, 01 Mar 2023 06:46:26 GMT
Server: JSP3/2.0.14
Timing-Allow-Origin: *
Vary: Accept-Encoding
X-Cache-Status: HIT
X-Log: X-Log
X-Qiniu-Zone: 0
X-Reqid: S3YAAABJe5U9j_oW
X-Svr: IO

### ofter(dict):
{   'Accept-Ranges':'bytes',
    'Access-Control-Allow-Origin':'*',
    ...
}
----------------------------------
'''

import json
from pathlib import Path

class ParseHeader():
    def __init__(self,str_headers:list,sign:bool):
        self.str_headers = str_headers
        self.headers = {}
        self.pares_headers()
        if sign:self.save_file
        self.out_print()
        
    def pares_headers(self):
        for str_line in self.str_headers:
            k,v = str_line.strip().split(':',1)
            self.headers[k.strip()] = v.strip().replace('"',"'")

    def save_file(self):
        with open('headers_dict.txt','w',encoding='utf8') as f:
            f.write(json.dumps(self.headers))

    def out_print(self):
        print(self.headers)


def check_print():
    print('说明:选择1在命令行下粘贴headers,选择2,请在(h.txt)文件中粘贴headers:')
    print('-'*60)
    print('请选择1 or 2!:')
    wrtie_in = input()
    assert wrtie_in
    return int(wrtie_in)

def init_print_and_run(num_int,try_num=3):
    if try_num>=0:
        if num_int == 1:
            headers = input('请输入headers:')
            headers_list = headers.splitlines()
            yn = input('是否将其保存为文件headers_dict.txt(Y/N)')
            if yn.lower() == 'y' and len(yn.lower())>0:
                ParseHeader(headers_list,True)
            elif yn.lower() == 'n' and len(yn.lower())>0:
                ParseHeader(headers_list,False)
            else:
                init_print_and_run(try_num-1)
        elif num_int ==2:
            filename = 'h.txt'
            with open(filename,'w+',encoding='utf8') as f:
                read_list = f.readlines()
                if len(read_list)>0:
                    yn = input('是否将其保存为文件headers_dict.txt(Y/N)')
                    if yn.lower() == 'y' and isinstance(yn,str):
                        ParseHeader(headers_list,True)
                    elif yn.lower() == 'n' and isinstance(yn,str):
                        ParseHeader(headers_list,False)
                    else:
                        init_print_and_run(try_num-1)
                else:
                    f.write(' ')
                    raise ValueError('请输入headers后再运行此程序')
    else:
        print('重试次数已用尽,请重新运行!')

def main():
    num = check_print()
    if num == 1 or num ==2:
         init_print_and_run(num)
    else:
         print('输入数字错误’)

if __name__ == "__main__":
    main()


Snipaste_2023-03-03_00-03-45.png

将图片里的文字格式转换为字典,方便requests的headers的使用。

免费评分

参与人数 2吾爱币 +1 热心值 +2 收起 理由
xy123123 + 1 谢谢@Thanks!
yanecc + 1 + 1 热心回复!

查看全部评分

发帖前要善用论坛搜索功能,那里可能会有你要找的答案或者已经有人发布过相同内容了,请勿重复发帖。

magicianly 发表于 2023-3-3 09:41
给你个工具
https://spidertools.cn/#/
这个网站的工具是爬虫工具库,很方便
xixicoco 发表于 2023-3-3 03:55
wuaipojie0539 发表于 2023-3-3 07:11
时光纪Bound 发表于 2023-3-3 08:19
给大哥支持Curl.好多知识还需要学习
jffwoo 发表于 2023-3-3 08:52
有办法自动提取,自动保存吗
earlc 发表于 2023-3-3 10:43
magicianly 发表于 2023-3-3 09:41
给你个工具
https://spidertools.cn/#/
这个网站的工具是爬虫工具库,很方便

谢谢分享,方便啊
 楼主| 话痨司机啊 发表于 2023-3-3 10:45
magicianly 发表于 2023-3-3 09:41
给你个工具
https://spidertools.cn/#/
这个网站的工具是爬虫工具库,很方便

Thank you very much.
magicianly 发表于 2023-3-3 10:52

喜欢就好
magicianly 发表于 2023-3-3 10:54
earlc 发表于 2023-3-3 10:43
谢谢分享,方便啊

喜欢就好
您需要登录后才可以回帖 登录 | 注册[Register]

本版积分规则

返回列表

RSS订阅|小黑屋|处罚记录|联系我们|吾爱破解 - LCG - LSG ( 京ICP备16042023号 | 京公网安备 11010502030087号 )

GMT+8, 2025-1-9 13:46

Powered by Discuz!

Copyright © 2001-2020, Tencent Cloud.

快速回复 返回顶部 返回列表