lihu5841314 发表于 2021-8-5 21:00

写个py方便给请求头加引号(顺便回忆下字符串替换) 还有别的替换方式欢迎留言

#方便给headers加引号
import re


headers_str="""

:authority: ss1.bdstatic.com
:method: GET
:path: /5eN1bjq8AAUYm2zgoY3K/r/www/cache/static/protocol/https/plugins/every_cookie_4644b13.js
scheme: https
accept: */*
accept-encoding: gzip, deflate, br
accept-language: zh-CN,zh;q=0.9
cache-control: no-cache
pragma: no-cache
referer: https://www.baidu.com/
sec-ch-ua: " Not;A Brand";v="99", "Google Chrome";v="91", "Chromium";v="91"
sec-ch-ua-mobile: ?0
sec-fetch-dest: script
sec-fetch-mode: no-cors
sec-fetch-site: cross-site
user-agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/91.0.4472.106 Safari/537.36


       """

pattern = r"^(.*?):\s?(.*?$)"
#Python splitlines() 按照行('\r', '\r\n', \n')分隔,返回一个包含各行作为元素的列表,如果参数 keepends 为 False,不包含换行符,如果为 True,则保留换行符。
#keepends -- 在输出结果里是否保留换行符('\r', '\r\n', \n'),默认为 False,不包含换行符,如果为 True,则保留换行符。 str.splitlines()
for line in headers_str.splitlines():
    #有时候网页的header前面有冒号 ,需要处理
    ifline.startswith(':'):
      line.strip()
      #删除特定位置的字符串方法1. pop()先转化成列表pop 在jion合成字符串
      # line = list(line)
      # line.pop(0)
      # line = ''.join(line)
      #方法二
      # line = line
      #方法三   remove方法也是需要列表
      # line = list(line)
      # line.remove(line)
      # line = "".join(line)
      #方法四str的replace方法可选参数count参数就可以指定要替换几个
      # line = line.replace(":","",1)#1代表替换次数
      #方法五 用正则替换
      line = re.sub(r'^:',"",line)
      print(re.sub(pattern, r'"\1": "\2",', line))
    else:
      print(re.sub(pattern, r'"\1": "\2",', line))

Gkf318 发表于 2021-8-5 21:44

请求头替换吗不错

muyan1995 发表于 2021-8-5 21:45

直接粘贴到postman里再复制出来

jjjzw 发表于 2021-8-6 00:25

我自己一直在用的import json

# 使用三引号将浏览器复制出来的requests headers参数赋值给一个变量
headers = """
Accept: */*
Connection: keep-alive
Accept-Language: zh-cn
Accept-Encoding: gzip, deflate
User-Agent: Mozilla/5.0 (Macintosh; Intel Mac OS X 10_13_6) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/11.1.2 Safari/605.1.15
Content-Length: 21
X-Requested-With: XMLHttpRequest
"""

headers = headers.strip().split('\n')
headers = {x.split(':').strip(): ("".join(x.split(':'))).strip().replace('//', "://") for x in headers}
print(json.dumps(headers, indent=1))

ermao 发表于 2021-8-6 08:36

pandas读数据格式化,然后导出字典

lihu5841314 发表于 2021-8-6 08:56

jjjzw 发表于 2021-8-6 00:25
我自己一直在用的import json

# 使用三引号将浏览器复制出来的requests heade ...

:authority: ss1.bdstatic.com前面有冒号好像不能完美加引号

jjjzw 发表于 2021-8-6 09:35

lihu5841314 发表于 2021-8-6 08:56
:authority: ss1.bdstatic.com前面有冒号好像不能完美加引号

header前面那部分是不需要的

lihu5841314 发表于 2021-8-6 09:42

jjjzw 发表于 2021-8-6 09:35
header前面那部分是不需要的

是不需要我的意思是自动舍弃前面的冒号
页: [1]
查看完整版本: 写个py方便给请求头加引号(顺便回忆下字符串替换) 还有别的替换方式欢迎留言