一个urllib2构建的html下载器的代理组件的实现方案

调用栈/函数链如下:

情形一:下载器初始化时

__init__
    buildOpener#构建opener
        newProxy4Opener#装备代理
            getNewProxy#获取代理
                maintainProxyPool#维护代理池
                    replenishProxies#补充代理
                        getProxiesFromLib#通过web服务获取指定数量的新代理

情形二:下载时

safeDownload#失败时自动尝试
    download#下载
        chgProxy#检测是否需要更换代理
            #满足随机条件,尝试装备新代理
            newProxy4Opener
                getNewProxy
                    maintainProxyPool
                        replenishProxies
                            getProxiesFromLib
            #目前代理失效,尝试装备新代理
            dropAndChangeProxy
                newProxy4Opener
                    getNewProxy
                        maintainProxyPool
                            replenishProxies
                                getProxiesFromLib

posted on 2016-12-29 11:03  忧伤的南瓜  阅读(127)  评论(0编辑  收藏  举报

导航