一个输入网址就可显示网站安全性及网站主要内容的含GUI的Python小程序

1.一些杂七杂八的引入

上次发了一个类似爬虫,可以自动下载网页图片的python小程序(详见一个自动下载网页图片的python小程序
居然入选了《Python领域内容榜的33名》!
在这里插入图片描述
于是……
我又做了个Python小程序,用来显示网站安全性及网站主要内容的含GUI的Python小程序……

2.实现

2.1 显示网站安全性

好吧,你猜对了,这个安全性就只是可以判断网站用的是HTTP协议还是HTPS协议而已~
什么?你说这有点鸡肋?
这本来就很鸡肋~

不过……
不会还有人连HTTP协议和HTTPS协议的区别都不知道吧?
好吧,在做这个程序之前我也不知道……

且听我细细道来~

HTTP协议
HTTP全称Hypertext Transfer Protocol,是一种基于文本的协议,用于在Web浏览器和Web服务器之间传输数据。HTTP传输的数据是明文的,容易被攻击者截取和窃听。因此,HTTP不提供加密和数据完整性验证的保护,存在安全风险。通常,HTTP用于传输不敏感的数据,例如公开的网页内容或无需保密的信息。

HTTPS协议
HTTPS全称Hypertext Transfer Protocol Secure,是基于HTTP的安全版本。与HTTP相比,HTTPS通过使用SSL(Secure Sockets Layer)或TLS(Transport Layer Security)协议进行加密和身份验证,提供了更高的安全性。HTTPS的数据传输是加密的,使得中间人无法窃听或篡改传输的数据。HTTPS常用于传输敏感信息,例如信用卡信息、登录凭证等。

要注意的是,使用HTTPS需要服务器拥有数字证书,证书由经过验证的认证机构颁发,用于验证服务器的身份。只有在客户端和服务器之间建立了有效的证书握手,并且证书是受信任的,浏览器才会显示连接是安全的。因此,HTTPS不仅提供了数据的机密性,还提供了对服务器身份的验证。
(关于证书握手什么的,下次有空再讲~)

2.2 安装所需python包

既然都涉及到HTTP和HTTPS了,requests当然不能忘,还要用beautifulsoup库解析网页内容,既然是含GUI的,自然也少不了tkiner库,但是只要是按照我的教程安装Python的,链接:Python安装教程

2.2.1 requests包

安装步骤:
1.按下Win+R,打开“运行”对话框
在这里插入图片描述
2.输入“cmd”
在这里插入图片描述
3.单击“确定”,进入cmd命令提示符,输入以下内容:

pip3 install requests#这个是python版本是3点几的同学
pip install requests#这个是python版本是其他的同学

在这里插入图片描述

2.2.1 beautifulsoup包

安装步骤:
1.按下Win+R,打开“运行”对话框
在这里插入图片描述
2.输入“cmd”
在这里插入图片描述
3.单击“确定”,进入cmd命令提示符,输入以下内容:

pip3 install beautifulsoup4#这个是python版本是3点几的同学
pip install beautifulsoup4#这个是python版本是其他的同学

在这里插入图片描述

3.源码展示

为了方便大家理解,这次在源码上加了注释,不会像上次那样让人一头雾水了:

import requests
from bs4 import BeautifulSoup
import tkinter as tk

def check_website():
    url = entry.get()  # 获取输入的网址

    try:
        response = requests.get(url)  # 发送GET请求获取网页内容
        response.raise_for_status()  # 检查是否发生错误

        # 使用BeautifulSoup解析网页内容
        soup = BeautifulSoup(response.content, 'html.parser')

        # 输出网站安全性信息(HTTPS or HTTP)
        if response.url.startswith('https://'):
            result_text.set("网站使用 HTTPS 安全连接")
        else:
            result_text.set("网站使用 HTTP 连接,不安全")

        # 输出页面标题
        title = soup.title.string.strip()
        info_text.set(f"页面标题:{title}\n")

        # 输出页面描述
        description = soup.find('meta', attrs={'name': 'description'})
        if description:
            info_text.set(info_text.get() + f"\n页面描述:\n{description['content']}")
        else:
            info_text.set(info_text.get() + "\n无页面描述")

        # 输出页面关键词
        keywords = soup.find('meta', attrs={'name': 'keywords'})
        if keywords:
            info_text.set(info_text.get() + f"\n\n页面关键词:\n{keywords['content']}")
        else:
            info_text.set(info_text.get() + "\n\n无页面关键词")

        # 清空文本框内容并滚动到顶部
        text_box.delete("1.0", tk.END)
        text_box.yview(tk.MOVETO, 0.0)

        # 插入页面信息到文本框
        text_box.insert(tk.END, info_text.get())

    except requests.exceptions.RequestException as e:
        result_text.set("发生错误,请检查网址或网络连接")
        info_text.set("")  # 清空页面信息
        text_box.delete("1.0", tk.END)

# 创建GUI窗口
window = tk.Tk()
window.title("网址安全性和页面信息检查")
window.geometry("400x300")

# 创建网址输入框和按钮
entry = tk.Entry(window, width=50)
entry.pack(pady=10)

button = tk.Button(window, text="检查", command=check_website)
button.pack()

# 创建结果和页面信息显示标签
result_text = tk.StringVar()
result_label = tk.Label(window, textvariable=result_text)
result_label.pack(pady=10)

info_text = tk.StringVar()

# 创建滚动条和文本框
scrollbar = tk.Scrollbar(window)
scrollbar.pack(side=tk.RIGHT, fill=tk.Y)

text_box = tk.Text(window, wrap=tk.WORD, yscrollcommand=scrollbar.set)
text_box.pack(expand=True, fill=tk.BOTH)

# 配置滚动条与文本框的关联
scrollbar.config(command=text_box.yview)

# 启动GUI主循环
window.mainloop()

4.效果展示

输入网址就可显示网站安全性及网站主要内容的小程序的演示

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值