我想出了如何使用urllib2代理:
encoded_params = urllib.urlencode(params)
url = "http://someurl.com"
header = {"User-Agent" : "Mozilla/5.0 (X11; U; Linux i686) Gecko/20071127 Firefox/2.0.0.11"}
proxy = urllib2.ProxyHandler({'http': '193.33.125.217:8080'})
opener = urllib2.build_opener(proxy)
urllib2.install_opener(opener)
request = urllib2.Request(url, headers=header)
response = urllib2.urlopen(request)
我希望代码是正确的。也许还有一种更优雅的方式?至少它似乎工作到目前为止。是否有类似日志或字典的信息,其中包含我使用urllib2发出的请求的信息?能给我一些关于我使用的代理,参数,查询时的IP,可能是端口和其他元数据的信息吗?
答案 0 :(得分:1)
据我所知,你正在做的一切正确。一种测试方法是运行一个简单的Web服务器并从您的代理连接到它。制作一个简单的测试Web服务器很简单:
from wsgiref.simple_server import demo_app
from wsgiref.simple_server import make_server
httpd = make_server('0.0.0.0', 8000, demo_app)
print "Serving on port 8000..."
httpd.serve_forever()
假设您可以从运行它的任何地方(不被防火墙等阻止)从外部连接到Web服务器,您应该能够验证代理地址在连接时是否被回显。如果您执行print response.read()
,则可以查看各种WSGI environ
详细信息。这适用于测试,但不要让服务器永远运行:)