5

在我的国家,许多网站被审查和封锁,而是被重定向到某个页面。我不知道他们到底是怎么做到的。但是是否可以在不加载整个内容的情况下以编程方式确定网站被阻止还是未被阻止?我想这样做的原因是使用网络搜索 API(可能是谷歌的)并制作一个只带来未被阻止的结果的网络服务。

如果有帮助,则加载的页面内容如下所示:

<html><head><meta http-equiv="Content-Type" content="text/html; charset=windows-1256"><title>M3-5
</title></head><body><iframe src="http://10.10.34.34?type=Invalid Site&policy=MainPolicy " style="width: 100%; height: 100%" scrolling="no" marginwidth="0" marginheight="0" frameborder="0" vspace="0" hspace="0"></iframe></body></html>

我了解运行该服务的服务器必须拥有我所在国家/地区的 IP。

如果有一种方法可以在 PHP 或 Python 中执行此操作,那将是最好的。

我感谢任何帮助或想法。

4

1 回答 1

3

这在 PHP 和 Python 中应该是完全可能的。基本上,您想向相关站点发出一个 http 请求,然后分析您返回的响应。看看PHP 的 cURLPython 的 Pycurl来梳理一下如何发出这些 http 请求以及如何处理响应。

收到响应后,只需将模式与被阻止站点的某些可靠模式进行匹配即可。我的第一个猜测是您可以<body><iframe src="http://10.10.34.34?type=Invalid Site在响应中查找,但是您必须检查更多被阻止的页面以查看它们是否都包含该字符串。例如,如果 IP 或类型查询字符串参数从一个被阻止的站点到另一个站点不同,您最终可能需要将检查范围扩大到一个特定的正则表达式。

于 2012-05-15T13:28:11.917 回答