一個urllib2構建的html下載器的代理組件的實現方案

調用棧/函數鏈以下:python

情形一:下載器初始化時web

__init__
    buildOpener#構建opener
        newProxy4Opener#裝備代理
            getNewProxy#獲取代理
                maintainProxyPool#維護代理池
                    replenishProxies#補充代理
                        getProxiesFromLib#經過web服務獲取指定數量的新代理

情形二:下載時函數

safeDownload#失敗時自動嘗試
    download#下載
        chgProxy#檢測是否須要更換代理
            #知足隨機條件,嘗試裝備新代理
            newProxy4Opener
                getNewProxy
                    maintainProxyPool
                        replenishProxies
                            getProxiesFromLib
            #目前代理失效,嘗試裝備新代理
            dropAndChangeProxy
                newProxy4Opener
                    getNewProxy
                        maintainProxyPool
                            replenishProxies
                                getProxiesFromLib
相關文章
相關標籤/搜索