更新時(shí)間:2022-04-22 來(lái)源:黑馬程序員 瀏覽量:
urllib庫(kù)是Python內(nèi)置的HTTP請(qǐng)求庫(kù),它可以看做是處理URL的組件集合。urllib庫(kù)包含了四大模塊,具體如下:
爬取網(wǎng)頁(yè),其實(shí)就是通過(guò)URL獲取網(wǎng)頁(yè)信息,這段網(wǎng)頁(yè)信息的實(shí)質(zhì)就是一段附加了JS和CSS的HTML代碼。如果把網(wǎng)頁(yè)比作是一個(gè)人,那么HTML就是它的骨架,JS是它的肌肉,CSS是它的衣服。由此看來(lái),網(wǎng)頁(yè)最重要的數(shù)據(jù)部分是存在于HTML中的。
urllib庫(kù)的使用比較簡(jiǎn)單,接下來(lái),我們使用urllib快速爬取一個(gè)網(wǎng)頁(yè),具體代碼如下:
importurllib.request #調(diào)用urllib.request庫(kù)的urlopen方法,并傳入一個(gè)url response=urllib.request.urlopen('http://www.baidu.com') #使用read方法讀取獲取到的網(wǎng)頁(yè)內(nèi)容 html=response.read().decode('UTF-8') #打印網(wǎng)頁(yè)內(nèi)容 print(html)
上述代碼就是一個(gè)簡(jiǎn)單的爬取網(wǎng)頁(yè)案例,爬取的網(wǎng)頁(yè)結(jié)果如圖4-1所示。
獲取的網(wǎng)頁(yè)源碼
實(shí)際上,如果我們?cè)跒g覽器上打開(kāi)百度首頁(yè),右鍵選擇“查看源代碼”,你會(huì)發(fā)現(xiàn),跟我們剛才打印出來(lái)的是一模一樣。也就是說(shuō),上述案例僅僅用了幾行代碼,就已經(jīng)幫我們把百度首頁(yè)的全部代碼下載下來(lái)了。
Python2中使用的是urllib2庫(kù)來(lái)下載網(wǎng)頁(yè),該庫(kù)的用法如下所示:
importurllib2 response=urllib2.urlopen('http://www.baidu.com')
Python3出現(xiàn)后,之前Python2中的urllib2庫(kù)被移到了urllib.request模塊中,之前urllib2中很多函數(shù)的路徑也發(fā)生了變化,希望大家在使用的時(shí)候多加注意。
HTTP請(qǐng)求格式:請(qǐng)求行、請(qǐng)求頭詳細(xì)介紹【爬蟲(chóng)工程師必會(huì)】
Python爬蟲(chóng)難學(xué)嗎?學(xué)會(huì)需要多久?
網(wǎng)絡(luò)爬蟲(chóng)獲取數(shù)據(jù)的5種方式【Python爬蟲(chóng)】