【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
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的一些小小的變動,以方便後續的開發使用(相關的程式碼隨後有時間貼上)。