我目前正在尝试设计一个过滤器,使用该过滤器我可以阻止某些URL,并且 根据可能位于http响应返回的数据中的关键字进行屏蔽。
为澄清起见,我正在为该项目使用Windows 10 x64计算机。
为了能够执行此操作,我很快了解到我需要一个Web代理。 我检查了在github上找到的大约6个用python编写的代理。
这些是我尝试使用的项目(有些是Python3,有些是2):
https://github.com/abhinavsingh/proxy.py/blob/develop/proxy.py
https://github.com/inaz2/proxy2/blob/master/proxy2.py
https://github.com/inaz2/SimpleHTTPProxy - this one is the earlier version of the top one
https://github.com/FeeiCN/WebProxy
Abhinavsingh的代理人(在列表中排名第一):
我想做什么
我希望代理能够根据请求阻止站点,然后返回内容,我还需要过滤器位于单独的文件中并具有通用性 因此我可以将其应用到每个站点以及每个请求/响应。
我想了解在此代理上放置过滤器的正确位置在哪里 以及如何重定向或在客户端尝试访问时仅发送回阻止页面 具有特定网址的网站,或者响应是包含某些关键字的页面。
我尝试了什么
我在Google chrome的“打开代理设置”中启用了代理 并执行了脚本。看起来很有希望,我注意到我可以在_process_request函数的第383行中插入过滤器的函数调用,以便返回 可能是另一个主机重定向到或只是阻止。它对我有用。
问题
首先,我无法完全重定向/阻止网站。有时会起作用,有时会 没有。 我遇到的另一个问题是,我意识到我无法访问返回的网站内容(如果是https)。
此外,不幸的是,过滤器的响应对我来说还不清楚。
我还注意到proxy2(列表中的第二个)可以解决我遇到的问题 过滤https页面内容的方法,但是我找不到如何使此功能起作用的方法(而且我认为无论如何它都需要linux实用程序)。
我上面描述的过程几乎就是我尝试处理列表中每个代理的过程。在某些代理服务器上,例如proxy2.py,我根本无法理解我需要做什么。
如果有人设法在此代理服务器或此列表中的其他任何服务器上进行过滤,并且可以帮助我了解如何进行过滤,请在下面对此发表评论,我们将不胜感激。
谢谢。