调用栈/函数链如下:
情形一:下载器初始化时
__init__
buildOpener#构建opener
newProxy4Opener#装备代理
getNewProxy#获取代理
maintainProxyPool#维护代理池
replenishProxies#补充代理
getProxiesFromLib#通过web服务获取指定数量的新代理
情形二:下载时
safeDownload#失败时自动尝试
download#下载
chgProxy#检测是否需要更换代理
#满足随机条件,尝试装备新代理
newProxy4Opener
getNewProxy
maintainProxyPool
replenishProxies
getProxiesFromLib
#目前代理失效,尝试装备新代理
dropAndChangeProxy
newProxy4Opener
getNewProxy
maintainProxyPool
replenishProxies
getProxiesFromLib