Python网站拦截器

2025年3月22日 | 阅读 3 分钟

在本教程的这一部分,我们将构建一个实时的最流行的 Python 应用程序,称为网站拦截器。

此应用程序可用于阻止网站,以便用户在特定时间内无法打开它们。

让我们讨论一下如何使用 Python 构建这样的应用程序。

 

目的

Python 网站拦截器的目标是阻止某些网站,这些网站可能会在指定的时间内分散用户的注意力。

在此,我们将在工作时间内阻止对某些特定网站的访问,以便用户只能在空闲时间访问这些网站。

在此 Python 应用程序中,工作时间被认为是早上 9 点到下午 5 点。 除此之外的时间段将被视为空闲时间。

过程

要阻止计算机上对特定网站的访问,我们需要配置 hosts 文件。

hosts 文件

hosts 文件是一个本地文件,过去用于将主机名映射到 IP 地址。 虽然现在使用 DNS 服务将主机名映射到 IP 地址,但 host 文件仍然非常复杂,可用于在本地配置 IP 地址的映射。

hosts 文件的位置

hosts 文件的位置因操作系统而异。

Windows: C:\Windows\System32\drivers\etc

mac 和 Linux: /etc/hosts

配置

由于 hosts 文件包含主机名和 IP 地址之间的映射,让我们首先查看存储为 /etc/hosts 的 hosts 文件的内容,因为我们使用 CentOS 7 (Linux)。

Python Website Blocker

正如我们在上图中看到的,映射是为 IP 地址为 127.0.0.1 的 localhost 保存的。

同样,我们可以将任何主机名重定向回 localhost IP (127.0.0.1)。 它将阻止对该主机名的访问,并在每次请求时将其重定向到 localhost。

为了验证,让我们编辑 hosts 文件的内容,并向其中添加以下几行。 要更改 /etc/hosts 文件,我们需要更改其权限。

在终端上运行以下命令以更改权限。

现在将以下行添加到文件中,以阻止对 facebook.com 的访问(例如)。

如下图所示。

Python Website Blocker

保存文件并尝试使用浏览器打开 www.facebook.com。

Python Website Blocker

如上图所示,它拒绝连接。

我们已经通过手动编辑 hosts 文件完成了我们的任务。 我们尚未实现我们的目标。 我们的目标是在仅在工作时间(早上 9 点到下午 5 点)阻止对某些特定网站(例如,facebook)的访问。

它需要一个 Python 脚本,该脚本会在特定时间内不断向 hosts 文件添加必要的行。

在本教程的这一部分中,我们将构建这样一个 Python 脚本,该脚本会在工作时间内不断编辑 hosts 文件。 我们还将在操作系统启动时部署该脚本,以便它不需要任何外部执行。

要求

我们需要知道以下 Python 模块来构建 Python 网站拦截器。

  1. 文件处理: 文件处理用于对 hosts 文件进行修改。
  2. 时间: 时间模块用于控制对 hosts 文件进行修改的频率。
  3. 日期时间: 日期时间模块用于跟踪空闲时间和工作时间。
下一个主题构建 Python 脚本