我试图确定高匿名代理。也称为私人/精英代理。我从一个论坛上读到了这个:
高匿名性服务器不发送HTTP_X_FORWARDED_FOR,HTTP_VIA和 HTTP_PROXY_CONNECTION变量。主人甚至不知道你在使用 代理服务器,当然它不知道你的IP地址。
高度匿名的代理将显示以下信息:
REMOTE_ADDR =代理的IP地址
HTTP_VIA =空白
HTTP_X_FORWARDED_FOR =空白
那么,我如何在Python中检查这个头文件,将它们丢弃为HA代理?我尝试使用requests
包,也使用urllib,使用内置的http.client和urllib2来检索20-30个代理的标头。但我从未见过这些标题。所以我应该做错事......
这是我用requests
测试的代码:
proxies = {'http': 'http://176.100.108.214:3128'}
header = {'user-agent':'Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/42.0.2311.90 Safari/537.360',}
s = requests.session()
s.proxies = proxies
r = s.get('http://www.python.org', headers=header)
print(r.status_code)
print(r.request.headers)
print(r.headers)
答案 0 :(得分:0)
听起来你所引用的论坛帖子是关于代理请求中服务器看到的标题,而不是客户端看到的标题代理回应。
由于您使用composer update
作为服务器进行测试,因此查看其收到的标头的唯一方法是访问其日志。你不是。
但是有一个简单的解决方案:运行您自己的HTTP服务器,针对该服务器发出请求,然后您可以看到它收到的内容。 (如果您在防火墙或NAT后面,您正在测试的代理无法连接,您可能必须在某处获得免费的托管服务器;如果没有,您可以运行它在你的机器上。)
如果您不知道如何设置和配置Web服务器,Python会自带一个。只需使用Python 3.2+(在您自己的机器上,或者使用Amazon EC2免费实例,或其他任何内容)运行此脚本:
www.python.org
然后在shell中使用from http.server import HTTPServer, SimpleHTTPRequestHandler
class HeaderDumper(SimpleHTTPRequestHandler):
def do_GET(self):
try:
return super().do_GET()
finally:
print(self.headers)
server = HTTPServer(("", 8123), HeaderDumper)
server.serve_forever()
运行该脚本。
然后使用python3
而不是http://my.host.ip
运行客户端脚本,并查看脚本转储到服务器shell的内容。