1. 程式人生 > >【Pyhton網路爬蟲】網路請求使用的urllib模組

【Pyhton網路爬蟲】網路請求使用的urllib模組

python的簡單,讓我很是喜歡。所以在練習爬蟲和介面測試的時候,使用python來幫助進行網路請求。

Python2.x中會使用的標準庫有urllib、urllib2;

Python3.x中使用的就只有urllib(是urllib和urllib2的結合);

其實還有很實用的requests第三方庫,什麼框架類的就不用再多說了,基礎最重要。

先看一個簡單的例子:

1.python3.x使用urllib.request請求網路,新增header有兩種方式:

a.使用urllib.request.build_opener建立一個opener物件,使用這個物件進行header的新增或更新addheaders

,在使用這個opener物件訪問網址opener.open(url)。

b.使用urllib.request.Request常見一個Request物件,通過這個物件來進行add_header()來操作header,最後使用urllib.request.urlopen(req)。

2.Python2.x使用urllib和urllib2進行帶有header的網路請求:

   a.header使用字典型別的,可以先進行編碼header = urllib.urlencode(header),然後將header資料通過    urllib2.Request(url,headers=self.headers)建立要給request物件,再通過urllib2.urlopen(request)傳送請求。

3.簡單介紹一下老二和老三的關係:

a.在Python2.X中使用import urllib——對應的,在Python3.X中會使用import urllib.request,urllib.error,urllib.parse。

b.在Python2.X中使用import urlparse——對應的,在Python3.X中會使用import urllib.parse。

c.在Python2.X中使用import urllib2——對應的,在Python3.X中會使用import urllib.request,urllib.error。

d.在Python2.X中使用import urllib2.urlopen——對應的,在Python3.X中會使用import urllib.request.urlopen。

e.Python2.X中使用import urllib.urlencode——對應的,在Python3.X中會使用import urllib.parse.urlencode。

f.Python2.X中使用import urllib.quote——對應的,在Python3.X中會使用import urllib.request.quote。

g.Python2.X中使用import cookielib.CookieJar——對應的,在Python3.X中會使用import http.CookieJar。

h.Python2.X中使用import urllib2.Request——對應的,在Python3.X中會使用import urllib.request.Request。

i.Python2.X中使用import urllib.urlretrieve()——對應的,在Python3.X中會使用import urllib.request.urlretrieve

Urlretrieve執行的過程中,會產生一些快取,如果我們想清除這些快取資訊,可以使用urlcleanup()進行清除,輸入如下程式碼即可清除Urlretrieve執行所造成的快取:

上面可以簡單的瞭解Urllib相關模組中從Python2.X到Python3.X的一些小小的變動,以方便後續的開發使用(相關的程式碼隨後有時間貼上)。