python爬虫headers处理小工具源码优化(支持浏览器、Charles、Fillder)

查看 125|回复 9
作者:Clinton   
基于之前的源代码进行优化,(
支持浏览器、Charles、Fillder
)https://www.52pojie.cn/thread-1144758-1-1.html


Charles.png (87.05 KB, 下载次数: 0)
下载附件
2023-4-16 00:24 上传



Fillder.png (93.84 KB, 下载次数: 0)
下载附件
2023-4-16 00:24 上传



浏览器.png (90.07 KB, 下载次数: 0)
下载附件
2023-4-16 00:24 上传

import tkinter as tk
import tkinter.messagebox
class MyApp(tk.Tk):
    def __init__(self):
        super().__init__()
        self.title('header处理工具')
        win_width = self.winfo_screenwidth()
        win_height = self.winfo_screenheight()
        my_width = 800
        my_height = 560
        x = (win_width - my_width) / 2
        y = (win_height - my_height) / 2
        self.geometry("%dx%d+%d+%d" % (my_width, my_height, x, y))
        self.maxsize(my_width, my_height)
        self.minsize(my_width, my_height)
        self.button = tk.Button(self, text='转换', font=('宋体', 12), command=self.update)
        self.button.place(x=380, y=300)
        self.label1 = tk.Label(self, text='原始文本', font=('宋体', 10))
        self.label1.place(x=160, y=5)
        self.text1 = tk.Text(width=50, height=40)
        self.text1.place(x=5, y=30)
        self.label2 = tk.Label(self, text='结果文本', font=('宋体', 10))
        self.label2.place(x=600, y=5)
        self.text2 = tk.Text(width=50, height=40)
        self.text2.place(x=440, y=30)
    def update(self):
        if len(self.text1.get('0.0', 'end')) == 1:
            tkinter.messagebox.showinfo('提示', '请先填入内容继续')
        else:
            self.text2.delete('1.0', 'end')
            text = self.text1.get('0.0', 'end').split("\n")
            self.text2.insert('insert', "headers = {\n")
            text = [i for i in text if (i is not None) and (str(i).strip() != '')]
            for _ in text:
                value = ''
                if '\t' in _:
                    key_, value_ = _.split('\t', 1)
                    value = f"'{key_}': '{value_}'"
                elif ':' in _ and _[0] != ':' and '\t' not in _:
                    key_, value_ = _.split(':', 1)
                    value = f"'{key_}': '{value_.replace(' ', '', 1)}'"
                elif ':' in _ and _[0] == ':' and '\t' not in _:
                    if _[0] == ':':
                        key_, value_ = _.replace(':', '', 1).split(':', 1)
                    else:
                        key_, value_ = _.replace(':', '', 1).split(':', 1)
                    value = f"'{key_}': '{value_.replace(' ', '', 1)}'"
                if text.index(_)

下载次数, 浏览器

mainblog   

爬虫工具库,你值得拥有https://spidertools.cn/
poqt   

学习了,谢谢楼主大大!
塞北的雪   

[ 本帖最后由 塞北的雪 于 2023-4-16 02:13 编辑 ]\n\n[Python] 纯文本查看 复制代码
# coding=utf8
import re
regex = r"^(.+?):\s?(.*)"
test_str = ("Host: static.52pojie.cn\n"
        "Connection: keep-alive\n"
        "Pragma: no-cache\n"
        "Cache-Control: no-cache\n"
        "User-Agent: Mozilla/5.0 (Windows NT 10.0; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/86.0.4240.198 Safari/537.36\n"
        "DNT: 1\n"
        "Accept: */*\n"
        "Sec-Fetch-Site: same-site\n"
        "Sec-Fetch-Mode: no-cors\n"
        "Sec-Fetch-Dest: script\n"
        "Referer: https://www.52pojie.cn//\n"
        "Accept-Encoding: gzip, deflate, br\n"
        "Accept-Language: zh-CN,zh;q=0.9\n"
        "Cookie: wzws_sessionid=D4C96D0943C796290377FE9F80432C16")
subst = "\"$1\":\"$2\""
result = re.sub(regex, subst, test_str, 0, re.MULTILINE)
if result:
    print (result)
[Python] 纯文本查看 复制代码
"Host":"static.52pojie.cn"
"Connection":"keep-alive"
"Pragma":"no-cache"
"Cache-Control":"no-cache"
"User-Agent":"Mozilla/5.0 (Windows NT 10.0; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/86.0.4240.198 Safari/537.36"
"DNT":"1"
"Accept":"*/*"
"Sec-Fetch-Site":"same-site"
"Sec-Fetch-Mode":"no-cors"
"Sec-Fetch-Dest":"script"
"Referer":"https://www.52pojie.cn//"
"Accept-Encoding":"gzip, deflate, br"
"Accept-Language":"zh-CN,zh;q=0.9"
"Cookie":"wzws_sessionid=D4C96D0943C796290377FE9F80432C16"
why3316   

谢谢大佬分享,太牛了
gst   

常处理headers的有用
heng179   

感谢分享
梦汐   

用正则好很多,(.*)\s(.*)
ccskcq   

学习python。
n1ghtc4t   

支持一下
您需要登录后才可以回帖 登录 | 立即注册

返回顶部