代码成果演示
Gitee 源码
# -*- coding: utf-8 -*-
# Version: Python 3.9.7
# Author: TRIX
# Date: 2021-10-05 13:51:29
# Use: 将复制的申请标头字符串 转换成 headers 字典 并贮存在 headers.json 复制到剪贴板
#应用办法:f12- 网络 -f5- 名称 - 任意一个条目 - 标头 - 申请标头 - 复制所有 - 运行该文件
import pyperclip,json
def getHeaders(noKeys=None,extraStripChars=[':'],doPrint=False,):
'''noKeys 依据键名去除键值对 键名与键名间以一个 space 宰割 辨别大小写 疏忽是否 strip
extraStripChars 额定 strip 键名的无关字符 字符与字符间以一个 space 宰割
doPrint 是否打印 headers 和去除的键值对 只有在首次创立 headers.json 有用 '''
strs=pyperclip.paste()# 读取剪贴字符串
headers={}
if 'Mozilla' not in strs:# 如果复制字符串不是申请标头
try:
with open('headers.json','r',encoding='utf-8') as f:# 读取贮存的 headers
headers=json.loads(f.read())#json 文本转 dict 对象
except FileNotFoundError:
return print('请至多残缺复制一次申请标头信息 \n 复制办法:f12- 网络 -f5- 名称 - 任意一个条目 - 标头 - 申请标头 - 复制所有')
if not headers:
def stripChars(word):#strip 键名的无关字符
word=word.strip()
for char in extraStripChars:
word=word.strip(char)
return word
keysValues=[]
for keyOrValue in strs.split(':'):# 以: 和 \n 切分字符串
for kOrV in keyOrValue.split('\r\n'):
keysValues.append(stripChars(kOrV))
for i in range(0,len(keysValues),2):# 生成 headers 字典
headers[keysValues[i]]=keysValues[i+1]
if noKeys:# 去除指定键值对
popKvs=[]
for key in noKeys.split():
popKvs.append(f"'{key}':'{headers.pop(stripChars(key))}'")
headersJson=json.dumps(headers,ensure_ascii=False,indent=2)#dict 对象转 json 文本 ensure_ascii 让输入后果是中文而不是 unicode indent 缩进字符个数 值只能是 dict list int float str bool None
with open('headers.json','w',encoding='utf-8') as h:# 贮存 json 数据
h.write(headersJson)
print('headers 信息已贮存至 headers.json 并复制到剪贴板')
if doPrint:# 打印
print('headers={')
for k,v in headers.items():
print(f"'{k}':'{v}',")
print('}')
if popKvs:
print('\n 去除 headers 的键值对如下:')
for kv in popKvs:
print(kv)
print('\n')
pyperclip.copy(headersJson)# 复制 headers 到剪贴板
return headers
#getHeaders(noKeys='path',doPrint=True)
getHeaders()