首先,我们导入了一些必要的库。requests
库用于发送HTTP请求,json
库用于处理JSON数据,tkinter
库用于创建GUI界面,PIL
库用于处理图像,io
库用于在内存中读写数据。
然后,我们定义了一个常量ITEMS_PER_PAGE
,表示每页显示的图片和链接数量。
接下来,我们定义了一个名为search_emoji
的函数。这个函数用于执行表情包搜索操作。它接受一个可选的page
参数,默认为1,表示要搜索的页码。
在函数内部,我们首先从搜索框中获取用户输入的关键字。如果没有输入关键字,则弹出一个提示框,并返回。
然后,我们根据关键字和页码构建了一个API请求的URL。这个URL包含了关键字和页码作为参数,以便向API发送请求获取数据。
接下来,我们使用requests
库发送了一个GET请求,并将返回的数据解析为JSON格式。
然后,我们清空了显示结果的文本框内容,以便显示新的搜索结果。
如果返回的数据是一个列表,说明找到了相关的表情包。我们计算出总共的表情包数量和页数,并更新页码的显示。然后,根据当前页码计算出要显示的表情包的起始和结束索引。
接下来,我们遍历这些表情包,获取每个表情包的缩略图URL和来源链接。
然后,我们尝试从用户输入的宽度和高度文本框中获取宽度和高度的值。如果用户没有输入有效的值,我们将宽度和高度设置为默认值150。
接下来,我们使用requests
库发送了一个GET请求,获取表情包的缩略图。然后,我们使用PIL
库打开并调整表情包的大小。接着,我们将调整后的表情包转换为ImageTk.PhotoImage
对象,并将其显示在GUI界面上的一个Label
组件中。
同时,我们将表情包的链接和来源链接插入到结果文本框中,以便用户可以查看和复制。
如果返回的数据不是列表,说明未找到相关的表情包。我们向结果文本框中插入一条提示,告诉用户未找到相关表情包。
除了搜索函数,我们还定义了其他几个函数来处理用户在界面上的操作。
go_to_page
函数在用户点击“Go”按钮时调用,用于跳转到指定的页码。它从页码文本框中获取用户输入的页码,并调用search_emoji
函数进行搜索。
go_to_first_page
函数在用户点击“首页”按钮时调用,用于跳转到第一页。它直接调用search_emoji
函数进行搜索第一页。
go_to_last_page
函数在用户点击“尾页”按钮时调用,用于跳转到最后一页。它首先发送一个请求获取所有表情包的数据,然后根据总页数调用search_emoji
函数进行搜索最后一页。
go_to_prev_page
函数在用户点击“上一页”按钮时调用,用于跳转到上一页。它从页码文本框中获取当前页码,并调用search_emoji
函数进行搜索前一页。
go_to_next_page
函数在用户点击“下一页”按钮时调用,用于跳转到下一页。它从页码文本框中获取当前页码,并发送一个请求获取所有表情包的数据,然后根据总页数调用search_emoji
函数进行搜索下一页。
最后,在主程序中,我们创建了一个Tk
类的实例,设置窗口的标题和尺寸,并配置了背景颜色。
然后,我们创建了各个GUI组件,并使用grid
方法将它们放置在窗口中的适当位置。
最后,我们进入了主事件循环,等待用户与界面进行交互。在这个循环中,程序会根据用户的操作来调用相应的函数,更新界面的显示。
运行效果:
题外话
黑客&网络安全如何学习
今天只要你给我的文章点赞,我私藏的网安学习资料一样免费共享给你们,来看看有哪些东西。
1.学习路线图
攻击和防守要学的东西也不少,具体要学的东西我都写在了上面的路线图,如果你能学完它们,你去就业和接私活完全没有问题。
2.视频教程
网上虽然也有很多的学习资源,但基本上都残缺不全的,这是我自己录的网安视频教程,上面路线图的每一个知识点,我都有配套的视频讲解。
内容涵盖了网络安全法学习、网络安全运营等保测评、渗透测试基础、漏洞详解、计算机基础知识等,都是网络安全入门必知必会的学习内容。
(都打包成一块的了,不能一一展开,总共300多集)
因篇幅有限,仅展示部分资料,领取方法如下👇
3.技术文档和电子书
技术文档也是我自己整理的,包括我参加大型网安行动、CTF和挖SRC漏洞的经验和技术要点,电子书也有200多本,由于内容的敏感性,我就不一一展示了。
因篇幅有限,仅展示部分资料,领取方法如下👇
4.工具包、面试题和源码
“工欲善其事必先利其器”我为大家总结出了最受欢迎的几十款款黑客工具。涉及范围主要集中在 信息收集、Android黑客工具、自动化工具、网络钓鱼等,感兴趣的同学不容错过。
还有我视频里讲的案例源码和对应的工具包,需要的话也可以拿走。
因篇幅有限,仅展示部分资料,领取方法如下👇
最后就是我这几年整理的网安方面的面试题,如果你是要找网安方面的工作,它们绝对能帮你大忙。
这些题目都是大家在面试深信服、奇安信、腾讯或者其它大厂面试时经常遇到的,如果大家有好的题目或者好的见解欢迎分享。
参考解析:深信服官网、奇安信官网、Freebuf、csdn等
内容特点:条理清晰,含图像化表示更加易懂。
内容概要:包括 内网、操作系统、协议、渗透测试、安服、漏洞、注入、XSS、CSRF、SSRF、文件上传、文件下载、文件包含、XXE、逻辑漏洞、工具、SQLmap、NMAP、BP、MSF…
因篇幅有限,仅展示部分资料,领取方法如下👇