全國(guó)咨詢(xún)/投訴熱線(xiàn):400-618-4000

首頁(yè)技術(shù)文章正文

怎樣快速使用python中的urllib爬取網(wǎng)頁(yè)?

更新時(shí)間:2022-04-22 來(lái)源:黑馬程序員 瀏覽量:

什么是urllib?

urllib庫(kù)是Python內(nèi)置的HTTP請(qǐng)求庫(kù),它可以看做是處理URL的組件集合。urllib庫(kù)包含了四大模塊,具體如下:

  • urllib.request:請(qǐng)求模塊
  • urllib.error:異常處理模塊
  • urllib.parse:URL解析模塊
  • urllib.robotparser:robots.txt解析模塊

快速使用urllib爬取網(wǎng)頁(yè)

爬取網(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所示。

快速使用urllib爬取網(wǎng)頁(yè)

獲取的網(wǎng)頁(yè)源碼

實(shí)際上,如果我們?cè)跒g覽器上打開(kāi)百度首頁(yè),右鍵選擇“查看源代碼”,你會(huì)發(fā)現(xiàn),跟我們剛才打印出來(lái)的是一模一樣。也就是說(shuō),上述案例僅僅用了幾行代碼,就已經(jīng)幫我們把百度首頁(yè)的全部代碼下載下來(lái)了。

多學(xué)一招:Python2使用的是urllib2庫(kù)

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)】

多線(xiàn)程爬蟲(chóng)是什么?多線(xiàn)程爬蟲(chóng)流程分析

黑馬程序員python+大數(shù)據(jù)開(kāi)發(fā)工程師培訓(xùn)

分享到:
在線(xiàn)咨詢(xún) 我要報(bào)名
和我們?cè)诰€(xiàn)交談!