构建 python 脚本

17 Mar 2025 | 4 分钟阅读

让我们开始构建 python 脚本,该脚本可以在系统启动时运行,以阻止对特定网站的访问。打开 PyCharm 编辑代码,或者您可以使用任何您喜欢的 IDE。

创建一个名为 web-blocker.py 的新 Python 脚本。为了让您更容易理解这个过程,我们将逐步构建这个脚本。所以让我们从设置所有必需的变量开始编码。

设置变量

此步骤初始化脚本中将使用的所有必需变量。这里,host_path 设置为主机文件的路径。在我们的例子中,它位于 /etc 下。在 python 中,r 用于表示原始字符串。

redirect 被分配到本地主机地址,即 127.0.0.1。websites 是一个列表,其中包含要阻止的网站列表。

设置无限循环

我们需要在 python 脚本中有一个 while 循环,以确保我们的脚本每 5 秒运行一次。

为了实现这一点,我们将使用 time 模块的 sleep() 方法。

确定时间

在构建我们想要的 python 脚本的过程中,我们需要检查当前时间是工作时间还是娱乐时间,因为应用程序会在工作时间阻止网站访问。

要检查当前时间,我们将使用 datetime 模块。我们将检查 datetime.now() 是否大于当前日期凌晨 9 点的 datetime 对象,并且小于当前日期下午 5 点的 datetime 对象。

让我们进一步讨论 datetime.now() 的输出。

Building python script

它返回一个 datetime 对象,其中包含当前时间,包括年份(2019 年)、月份(1 月 1 日)、日期(23 日)、时间(小时、分钟、秒)。我们可以比较这个值,并使用 if 语句检查这个值是否存在于当前日期凌晨 9 点和当前日期下午 5 点之间。

该脚本现在将包含以下代码。

写入主机文件

脚本的主要目标是以规律的间隔不断修改主机文件。为了让脚本配置主机文件,我们需要在这里实现文件处理方法。

以下代码被添加到主机文件中。

open() 方法以 r+ 模式打开存储为 host_path 的文件。首先,我们使用 read() 方法读取文件的所有内容,并将其存储到一个名为 content 的变量中。

for 循环遍历网站列表 (websites),我们将检查列表中的每个项目是否已存在于 content 中。

如果它存在于主机文件内容中,那么我们必须传递。否则,我们必须将重定向-网站映射写入主机文件,以便将网站主机名重定向到本地主机。

主机文件现在将包含以下 python 代码。

现在,让我们运行这个 python 脚本,并检查它是否修改了主机文件。

Building python script

正如我们所看到的,它一直在控制台上打印工作时间,因为我们正处于工作时间。现在,让我们检查主机文件的内容。

Building python script

正如我们所看到的,两行已被添加到主机文件中。它会将对 Facebook 的访问重定向到本地主机。

从主机文件中删除

我们的脚本在工作时间运行良好,现在让我们为娱乐时间添加一些功能。在娱乐时间(非工作时间),我们必须从主机文件中删除添加的行,以便授予对被阻止网站的访问权限。

以下代码被添加到脚本的 else 部分(娱乐时间情况)。

else 部分将在娱乐时间执行,它会删除所有阻止访问计算机上某些特定网站的映射。

让我们检查在娱乐时间执行 python 脚本时主机文件的内容。

Building python script

最终脚本

现在,我们有一个 python 脚本,它运行良好,可以在工作时间(上午 9 点到下午 5 点)阻止访问某些特定网站,并在娱乐时间提供访问权限。

脚本 web-blocker.py 如下所示。

web-blocker.py