17.3.12--urllib2模塊

1---urllib2是很是強大的Python網絡資源訪問模塊,它的功能和urllib模塊類似python

      python標準庫中的urllib2模塊能夠說是urlib模塊的一個升級的複雜版,不須要另外下載,瀏覽器

                                               好比訪問的網絡資源須要http驗證,cookie

                 須要cookie信息網絡

                 模仿普通瀏覽器同樣去訪問網絡,網頁資源函數

            這個時候用urllib2測試

2---urllib2模塊介紹ui

    1)設置timeout超時設置:url

        import urllib2spa

        test=urllib2.urlopen('http://www.iplaypy.com/',timeout=15)firefox

                                              #2個參數,一個是url地址,一個是超時的時候,此次的測試設定值是15

 

    2)在訪問的時候加入Header頭部信息

        header={「User-Agent」:「Mozilla-firefox24.0」}  #字典類型

        urllib2.urlopen(url,header)

                           像上面這樣的操做,就能夠加上Header頭部信息,用來模仿瀏覽器行爲,應對一些禁止爬蟲的網絡資                         源,很是實用

    3)用urllib2獲得http網頁狀態碼

        import urllib2

        test=urllib2.urlopen("http://baidu.com/」)

        test.code

                               這樣就能夠訪問百度的網頁狀態碼,200證實能訪問,獲得網頁內容

    4)使用urllib2對Cookie進行處理

        import urllib2

        import cookielib

        cookie=cookielib.CookieJar()  #後面函數方法要注意C和J是大寫的

        opener=urllib2.build_opener(urllib2.HTTPCookieProcessor(cookie))

        response=opener.open('http://www.baidu.com')

        for item in cookie:

          if item.name=="some——cookie_item_name"

            print item.value

    5)urlopen()----是處理的入口函數,獲取OpenerDiretor對象,調用Opener.open()

                     默認的OpenDiretor對象保存在變量_open中,採用Singleton模式

    build_opener()----

           install_opener()---將OpenerDirector對象保存在變量_opener中,做爲默認opener使用

           class Openerdirector

    class Resquest---做爲一個信息對象,保存和url相關的參數,包括headers,data,proxy等,用於url參數傳遞

           class HTTPHandler---類繼承者關係:BaseHandler-->AbstracHTTPHandler-->HTTPHandler

                                               調用httplib.HTTPConnection完成HTTp的處理

相關文章
相關標籤/搜索