大家在玩爬虫时经常需要在请求的时候添加headers,这个时候就很烦,需要一个一个输入引号,逗号… 就算你会用pycharm里的正则匹配工具去修改,也需要想半天正则表达式,好麻烦… 虽然网络上有许多请求头加引号程序,但是都需要在程序里运行才可以,所以这里我就给大家提供一个tkinter做的请求头加引号工具:
先说说怎么加引号,这里用到了正则匹配:
def rhq(headers):
for line in headers.splitlines():
print(re.sub('^(.*?):[\s]*(.*?)$', '\'\\1\':\'\\2\',', line))
用tkinter.scrolledtext
分别实现转换前和转换后的内容显示:
scanf = ScrolledText(root, width=80, height=20)
scanf.grid(row=2, columnspan=2)
printf = ScrolledText(root, width=80, height=20)
printf.grid(row=5, columnspan=2)
用pyperclip
一键复制到剪贴板:
不过你需要先pip install pyperclip
pyperclip.copy(printf.get('1.0', 'end-1c'))
为了便于打包,还需要将所有函数封装成main函数
接下来上源码:
from tkinter import *
from tkinter.scrolledtext import *
import re
import pyperclip
def main():
root = Tk()
root.title("Requests_TRAN")
root.resizable(0, 0)
Label(text="请将请求头粘贴至此处:").grid(row=1, columnspan=2, sticky=W)
scanf = ScrolledText(root, width=80, height=20)
scanf.grid(row=2, columnspan=2)
def tran():
def rhq(headers):
for line in headers.splitlines():
printf.insert(END, re.sub('^(.*?):[\s]*(.*?)$', '\'\\1\':\'\\2\',', line) + "\n")
rhq(scanf.get('1.0', 'end-1c'))
def copy():
pyperclip.copy(printf.get('1.0', 'end-1c'))
Button(root, text="点击转换", command=tran).grid(row=3, columnspan=1)
Label(text="出结果后,点击下方“点击复制”按钮即可复制到剪贴板:").grid(row=4, columnspan=2, sticky=W)
printf = ScrolledText(root, width=80, height=20)
printf.grid(row=5, columnspan=2)
Button(root, text="点击复制", command=copy).grid(row=6, columnspan=1)
root.mainloop()
if __name__ == '__main__':
main()
然后用pyinstaller打包:
没有安装pyinstaller的话也可以直接用程序运行就可以的,安装方式:
pip install pyinstaller
到了最后看见成功提示就了,然后你会发现程序当前目录多了build和dist文件夹,我们所需要的程序就在dist文件夹中:
然后我们可以把它发送到桌面快捷方式,这样就可以随时随地使用啦!
最后上一段演示视频(就开头的结果,百度首页的请求头):
tkinter自制请求头加引号小工具演示视频