saltor 2019-06-20 10:23 采纳率: 100%
浏览 545
已采纳

urllib2封装在类里面设置代理不生效

#coding:utf8
import urllib
import urllib2
import ssl

class http:
    def __init__(self):
        ssl.match_hostname = lambda cert,hostname:True
        self.headers = {"User-Agent":"Mozilla/5.0 (Windows NT 6.1; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/74.0.3729.169 Safari/537.36"}
        self.proxies = {"http":"127.333.0.2:11"}
        self.code = None
        self.html = None
        self.error = None
    def get(self,url):
        try:
            proxy_handler = urllib2.ProxyHandler(self.proxies)
            opener = urllib2.build_opener(proxy_handler)
            res = opener.open(url)
            self.code = res.code
            self.html = res.read()
        except Exception as e:
            self.error = e


if __name__ == "__main__":
    req = http()
    url = "https://223.99.20.42/"
    req.get(url)
    print req.code
    print len(req.html)

get函数里面的代理设置没有生效。
不管我代理地址写什么,都能够执行,为什么代理设置没有生效。

  • 写回答

2条回答 默认 最新

  • saltor 2019-06-20 13:52
    关注

    解决了
    ssl那里改为ssl._create_default_https_context = ssl._create_unverified_context
    proxies改为{"https":"127.0.0.1:8080"}
    是ssl证书的问题

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论
查看更多回答(1条)

报告相同问题?