从urllib2获取传出端口号

时间:2012-01-12 13:08:00

标签: python urllib2

我正在使用Python 2.6.x和urllib2进行一些网页抓取,但我需要每个HTTP请求真正的低级套接字信息(实际上只是本地套接字的端口号)。有谁知道怎么做到这一点?

由于

修改

好吧,我仍然试图做到这一点,所以我做了我认为应该工作但我在尝试使用新东西时没有得到输出。我在这里做错了什么?

from urllib2 import *

class AbstractHTTPHandler(AbstractHTTPHandler):

    def do_open(self, http_class, req):
        """
          ...copy docstring...
        """
        print "woot!"
        ...copy code from urllib2.AbstractHTTPHandler.do_open...

1 个答案:

答案 0 :(得分:3)

urllib2可以在不同的URL方案上运行,这些方案甚至可能没有套接字的概念。相反,请使用http.client无证件 sock属性:

try:
    from http.client import HTTPConnection
except ImportError: # Python<3
    from httplib import HTTPConnection

h = HTTPConnection('example.net', 80)
h.request('GET', '/')
print('Local port: ' + str(h.sock.getsockname()[1]))