Как определить, что питоны urllib2 запрашивали контент через данный прокси? - PullRequest
0 голосов
/ 09 июля 2011

Я понял, как использовать прокси с 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-адрес, который у меня был при запросе, возможно, порт и другие метаданные?

1 Ответ

1 голос
/ 09 июля 2011

Насколько я могу судить, вы все делаете правильно. Один из способов проверить это - запустить простой веб-сервер и подключиться к нему через прокси-сервер. Создать простой тестовый веб-сервер очень просто:

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()

Предполагая, что вы можете подключаться к веб-серверу извне, где бы вы ни запускали его (не блокируется брандмауэром и т. Д.), Вы должны быть в состоянии проверить, что прокси-адрес отображается при подключении. Если вы делаете print response.read(), вы можете посмотреть различные детали WSGI environ. Это хорошо для тестирования, но не оставляйте сервер работать вечно:)

...