代码之家  ›  专栏  ›  技术社区  ›  ThinkCode

httplib2是否支持HTTP代理?SOCKS代理起作用,但不起作用HTTP

  •  3
  • ThinkCode  · 技术社区  · 16 年前

    这是我的密码。我不能让任何HTTP代理工作。但SOCKS代理(SOCKS4/5)工作正常。有什么想法吗?不过,URLLIB2在代理服务器上运行良好。我很困惑。谢谢。。

    代码:

      1 import socks
      2 import httplib2
      3 import BeautifulSoup
      4 
      5 httplib2.debuglevel=4
      6 
      7 http = httplib2.Http(proxy_info = httplib2.ProxyInfo(3, '213.30.160.160', 80))
      8 
      9 main_url = 'http://cuil.com'
     10 
     11 response, content = http.request(main_url, 'GET')
     12 
     13 #html_content = BeautifulSoup(content)
     14 
     15 print response
    

    输出:

    connect: (cuil.com, 80)
    Traceback (most recent call last):
      File "test.py", line 11, in <module>
        response, content = http.request(main_url, 'GET')
      File "/home/kk/bin/pythonlib/httplib2/__init__.py", line 1129, in request
        (response, content) = self._request(conn, authority, uri, request_uri, method, body, headers, redirections, cachekey)
      File "/home/kk/bin/pythonlib/httplib2/__init__.py", line 901, in _request
        (response, content) = self._conn_request(conn, request_uri, method, body, headers)
      File "/home/kk/bin/pythonlib/httplib2/__init__.py", line 862, in _conn_request
        conn.request(method, request_uri, body, headers)
      File "/usr/lib/python2.5/httplib.py", line 866, in request
        self._send_request(method, url, body, headers)
      File "/usr/lib/python2.5/httplib.py", line 889, in _send_request
        self.endheaders()
      File "/usr/lib/python2.5/httplib.py", line 860, in endheaders
        self._send_output()
      File "/usr/lib/python2.5/httplib.py", line 732, in _send_output
        self.send(msg)
      File "/usr/lib/python2.5/httplib.py", line 699, in send
        self.connect()
      File "/home/kk/bin/pythonlib/httplib2/__init__.py", line 740, in connect
        self.sock.connect(sa)
      File "/home/kk/bin/pythonlib/socks.py", line 383, in connect
        self.__negotiatehttp(destpair[0],destpair[1])
      File "/home/kk/bin/pythonlib/socks.py", line 349, in __negotiatehttp
        raise HTTPError((statuscode,statusline[2]))
    socks.HTTPError: (403, 'Forbidden')
    
    2 回复  |  直到 13 年前
        1
  •  0
  •   Dan Head    16 年前

    看起来这是httplib2的一个开放问题: http://code.google.com/p/httplib2/issues/detail?id=38

        2
  •  1
  •   Sheena    13 年前

    问题已解决。从2011年10月6日起,您可以使用HTTP代理

    推荐文章