本文介紹urllib庫(kù)在不同版本的Python中的變動(dòng),并以Python3.X講解urllib庫(kù)的相關(guān)用法。
urllib庫(kù)對(duì)照速查表
| Python2.X | Python3.X |
| urllib | urllib.request, urllib.error, urllib.parse |
| urllib2 | urllib.request, urllib.error |
| urllib2.urlopen | urllib.request.urlopen |
| urllib.urlencode | urllib.parse.urlencode |
| urllib.quote | urllib.request.quote |
| urllib2.Request | urllib.request.Request |
| urlparse | urllib.parse |
| urllib.urlretrieve | urllib.request.urlretrieve |
| urllib2.URLError | urllib.error.URLError |
| cookielib.CookieJar | http.CookieJar |
urllib庫(kù)是用于操作URL,爬取頁(yè)面的python第三方庫(kù),同樣的庫(kù)還有requests、httplib2。
在Python2.X中,分urllib和urllib2,但在Python3.X中,都統(tǒng)一合并到urllib中。通過(guò)上表可以看到其中常見(jiàn)的變動(dòng),依據(jù)該變動(dòng)可快速寫(xiě)出相應(yīng)版本的python程序。
相對(duì)來(lái)說(shuō),Python3.X對(duì)中文的支持比Python2.X友好,所以該博客接下來(lái)通過(guò)Python3.X來(lái)介紹urllib庫(kù)的一些常見(jiàn)用法。
發(fā)送請(qǐng)求
import urllib.requestr = urllib.request.urlopen(http://www.python.org/)
首先導(dǎo)入urllib.request模塊,使用urlopen()對(duì)參數(shù)中的URL發(fā)送請(qǐng)求,返回一個(gè)http.client.HTTPResponse對(duì)象。
在urlopen()中,使用timeout字段,可設(shè)定相應(yīng)的秒數(shù)時(shí)間之后停止等待響應(yīng)。除此之外,還可使用r.info()、r.getcode()、r.geturl()獲取相應(yīng)的當(dāng)前環(huán)境信息、狀態(tài)碼、當(dāng)前網(wǎng)頁(yè)URL。
讀取響應(yīng)內(nèi)容
import urllib.requesturl = "http://www.python.org/"with urllib.request.urlopen(url) as r:r.read()
使用r.read()讀取響應(yīng)內(nèi)容到內(nèi)存,該內(nèi)容為網(wǎng)頁(yè)的源代碼(可用相應(yīng)的瀏覽器“查看網(wǎng)頁(yè)源代碼”功能看到),并可對(duì)返回的字符串進(jìn)行相應(yīng)解碼decode()。
新聞熱點(diǎn)
疑難解答
圖片精選