a200710716
saltor
采纳率85.7%
2019-06-20 10:23

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条回答

  • a200710716 saltor 2年前

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

    点赞 评论 复制链接分享
  • qq_39412061 吃鸡王者 2年前

    打印req.error看看 啊
    肯定是有错误的

    点赞 评论 复制链接分享

相关推荐