Я не уверен, что вы имеете в виду под «следовым маршрутом». traceroute
- это IP-вещь, на два уровня ниже HTTP. И я сомневаюсь, что ты хочешь ничего подобного. Вы можете узнать, были ли какие-либо переадресации, был ли использован прокси-сервер и т. Д., Либо с помощью универсального сниффера, либо, проще говоря, просто спрашивая urllib2
.
Например, предположим, что ваш код выглядит следующим образом:
url = 'http://example.com'
data = urllib.urlencode({'spam': 'eggs'})
req = urllib2.Request(url, data)
resp = urllib2.urlopen(req)
respdata = resp.read()
Тогда req.has_proxy()
о том, какой он собирается использовать прокси-сервер, resp.geturl() == url
расскажет вам, был ли редирект и т.д. Читайте the docs для вся информация доступна.
Между тем, если вы не хотите прокси, вы можете либо отключить любые настройки urllib2
взял, что сделал это автоматически настроить прокси-сервер (например, unset http_proxy
перед запуском сценария), переопределить цепочку обработчика по умолчанию для убедитесь, что нет ProxyHandler
, постройте явный OpenerDirector
вместо использования по умолчанию и т. д.