吾爱破解 - 52pojie.cn

 找回密码
 注册[Register]

QQ登录

只需一步,快速开始

查看: 1531|回复: 15
收起左侧

[Python 原创] Headers 加个引号

  [复制链接]
dtsuifeng 发表于 2022-11-27 12:08
弄爬虫构造header时,加引号麻烦的不行。只是简单的加了个引号,没有对不需要的数据过滤。主要是弄界面麻烦。
[Python] 纯文本查看 复制代码
"""
Headers 加引号
2022.11.26
by:三张
"""
#!/usr/bin/env python
#-*- coding:utf-8 -*-

import os, sys
from tkinter import *
from tkinter.font import Font
from tkinter.ttk import *
#Usage:showinfo/warning/error,askquestion/okcancel/yesno/retrycancel
from tkinter.messagebox import *
#Usage:f=tkFileDialog.askopenfilename(initialdir='E:/Python')
#import tkinter.filedialog as tkFileDialog
#import tkinter.simpledialog as tkSimpleDialog  #askstring()
import re

class Application_ui(Frame):
    #这个类仅实现界面生成功能,具体事件处理代码在子类Application中。
    def __init__(self, master=None):
        Frame.__init__(self, master)
        self.master.title('三的小工具')
        self.master.geometry('955x500')
        self.createWidgets()

    def createWidgets(self):
        self.top = self.winfo_toplevel()

        self.style = Style()

        self.style.configure('Tftitle.TLabelframe', font=('宋体',9))
        self.style.configure('Tftitle.TLabelframe.Label', font=('宋体',9))
        self.ftitle = LabelFrame(self.top, text='Headers 加引号', style='Tftitle.TLabelframe')
        self.ftitle.place(relx=0.008, rely=0.017, relwidth=0.982, relheight=0.998)

        
        self.stext = Text(self.ftitle,  font=('宋体',9),wrap=NONE,  )
        self.stext.place(relx=0.017, rely=0.036, relwidth=0.957, relheight=0.412)
        
        #垂直滚动条
        self.VScroll1 = Scrollbar(self.stext, orient='vertical' )
        self.VScroll1.pack(side=RIGHT,fill=Y)
        self.VScroll1.config(command=self.stext.yview) # 将文本框关联到滚动条上,滚动条滑动,文本框跟随滑动
        self.stext.config(yscrollcommand=self.VScroll1.set) # 将滚动条关联到文本框
        #水平滚动条       
        self.stextxscroll= Scrollbar(self.stext,orient=HORIZONTAL)
        self.stextxscroll.pack(side=BOTTOM,fill=X) # side是滚动条放置的位置,上下左右。fill是将滚动条沿着y轴填充
        self.stextxscroll.config(command=self.stext.xview) # 将文本框关联到滚动条上,滚动条滑动,文本框跟随滑动
        self.stext.config(xscrollcommand=self.stextxscroll.set) # 将滚动条关联到文本框
        
        
        self.totext = Text(self.ftitle,  font=('宋体',9),wrap=NONE)
        self.totext.place(relx=0.017, rely=0.552, relwidth=0.957, relheight=0.412)

        self.VScroll2 = Scrollbar(self.totext, orient='vertical')
        self.VScroll2.pack(side=RIGHT,fill=Y)
        # 将滚动条与文本框关联
        self.VScroll2.config(command=self.totext.yview) # 将文本框关联到滚动条上,滚动条滑动,文本框跟随滑动
        self.totext.config(yscrollcommand=self.VScroll2.set) # 将滚动条关联到文本框
         #水平滚动条       
        self.totextxscroll= Scrollbar(self.totext,orient=HORIZONTAL)
        self.totextxscroll.pack(side=BOTTOM,fill=X) # side是滚动条放置的位置,上下左右。fill是将滚动条沿着y轴填充
        self.totextxscroll.config(command=self.totext.xview) # 将文本框关联到滚动条上,滚动条滑动,文本框跟随滑动
        self.totext.config(xscrollcommand=self.totextxscroll.set) # 将滚动条关联到文本框



        def cut(editor, event=None):
            editor.event_generate("<<Cut>>")
        def copy(editor, event=None):
            editor.event_generate("<<Copy>>")
        def paste(editor, event=None):
            editor.event_generate('<<Paste>>')
        def rightKey(event, editor):
            menubar.delete(0,END)
            menubar.add_command(label='剪切',command=lambda:cut(editor))
            menubar.add_command(label='复制',command=lambda:copy(editor))
            menubar.add_command(label='粘贴',command=lambda:paste(editor))
            menubar.post(event.x_root,event.y_root)
        menubar = Menu(self.top,tearoff=False)#创建一个菜单
        self.stext.bind("<Button-3>", lambda x: rightKey(x, self.stext))#绑定右键鼠标事件
        self.totext.bind("<Button-3>", lambda x: rightKey(x, self.totext))#绑定右键鼠标事件



        self.style.configure('Tcleartext.TButton', font=('宋体',9))
        self.cleartext = Button(self.ftitle, text='清空', command=self.cleartext_Cmd, style='Tcleartext.TButton')
        self.cleartext.place(relx=0.239, rely=0.463, relwidth=0.086, relheight=0.073)

        self.style.configure('Taddyh.TButton', font=('宋体',9))
        self.addyh = Button(self.ftitle, text='加引号', command=self.addyh_Cmd, style='Taddyh.TButton')
        self.addyh.place(relx=0.512, rely=0.463, relwidth=0.095, relheight=0.073)


class Application(Application_ui):
    #这个类实现具体的事件处理回调函数。界面生成代码在Application_ui中。
    def __init__(self, master=None):
        Application_ui.__init__(self, master)

    def cleartext_Cmd(self, event=None):
        #TODO, Please finish the function here!
        #清空两个文本框 
        self.stext.delete(1.0,"end")
        self.totext.delete(1.0,"end")
         

    def addyh_Cmd(self, event=None):
        #TODO, Please finish the function here!
        cookiestext=self.stext.get(1.0,"end")
        linetext=cookiestext.split("\n")
        newtext=""
        for text in linetext:
            if text != "":
                tmp=re.sub(":\s+","\':\'",text,count=1,flags=False)
                newtext += "'" + tmp +"',\n"
      
        self.totext.insert(1.0,newtext)
        self.totext.update()

      

if __name__ == "__main__":
    top = Tk()
    Application(top).mainloop()


20221126213259.png

免费评分

参与人数 5吾爱币 +5 热心值 +4 收起 理由
Ziyzs + 1 我很赞同!
qpm + 1 + 1 我很赞同!
Bmynldm + 1 + 1 谢谢@Thanks!
yjn866y + 1 + 1 谢谢@Thanks!
luxingyu329 + 1 + 1 我很赞同!

查看全部评分

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

悦来客栈的老板 发表于 2022-11-27 12:52
使用这个工具站点试试:

https://spidertools.cn/#/formatHeader

免费评分

参与人数 1吾爱币 +1 收起 理由
Courser + 1 谢谢@Thanks!

查看全部评分

surepj 发表于 2022-11-27 14:07
我一般是用网站,或者自己的py代码处理,代码如下:
[Python] 纯文本查看 复制代码
# 请求头文本放在两个'''中间
headerstr = '''
Accept: text/html,
Cookie: NMG7bjX-h_oGy51IJ-iGTVg
Referer: [url]https://baidu.com[/url]
User-Agent: Chrome
'''

h_list = [i for i in headerstr.split("\n") if i != '']  # 列表生成式
headers = {i.split(": ")[0]: i.split(": ")[-1] for i in h_list}  # 字典生成式
format_header = 'headers = ' + str(headers).replace("{", "{\n").replace("',", "',\n").replace("}", "\n}")
print(format_header)  # 格式化后的header,有换行等格式


效果:
[Asm] 纯文本查看 复制代码
headers = {
'Accept': 'text/html,',
 'Cookie': 'NMG7bjX-h_oGy51IJ-iGTVg',
 'Referer': 'https://baidu.com',
 'User-Agent': 'Chrome'
}
天真Aro 发表于 2022-11-27 12:48
感谢。好像有帖子也做了这个,自动加上headers = { xxxx },更方便的
luxingyu329 发表于 2022-11-27 13:09
我记得看过一个视频,直接在 pycharm里可以加,看演示是快捷键一键加上的,尝试正则等也没有一键成功。不知道哪个大佬能指点一二?
温柔 发表于 2022-11-27 14:10
记得有个插件,可以在复制时自动给headers,data之类的加上引号
cflying 发表于 2022-11-27 14:50
每次我都自己手动加,这个确实是个好方法,
dujiu3611 发表于 2022-11-27 16:42
一直使用在线工具的,可以看看这个
https://httpbin.org/
 楼主| dtsuifeng 发表于 2022-11-27 17:03
天真Aro 发表于 2022-11-27 12:48
感谢。好像有帖子也做了这个,自动加上headers = { xxxx },更方便的

是个好主意,一步到位。这个应该好改。对于大家都不难。
yjn866y 发表于 2022-11-27 18:26
悦来客栈的老板 发表于 2022-11-27 12:52
使用这个工具站点试试:

https://spidertools.cn/#/formatHeader

收下了,工具不错
您需要登录后才可以回帖 登录 | 注册[Register]

本版积分规则

返回列表

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

GMT+8, 2024-11-1 07:25

Powered by Discuz!

Copyright © 2001-2020, Tencent Cloud.

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