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

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

更新時間:2022-04-22 來源:黑馬程序員 瀏覽量:

什么是urllib?

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

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

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

爬取網(wǎng)頁,其實就是通過URL獲取網(wǎng)頁信息,這段網(wǎng)頁信息的實質(zhì)就是一段附加了JS和CSS的HTML代碼。如果把網(wǎng)頁比作是一個人,那么HTML就是它的骨架,JS是它的肌肉,CSS是它的衣服。由此看來,網(wǎng)頁最重要的數(shù)據(jù)部分是存在于HTML中的。

urllib庫的使用比較簡單,接下來,我們使用urllib快速爬取一個網(wǎng)頁,具體代碼如下:

importurllib.request
#調(diào)用urllib.request庫的urlopen方法,并傳入一個url
response=urllib.request.urlopen('http://www.baidu.com')
#使用read方法讀取獲取到的網(wǎng)頁內(nèi)容
html=response.read().decode('UTF-8')
#打印網(wǎng)頁內(nèi)容
print(html)

上述代碼就是一個簡單的爬取網(wǎng)頁案例,爬取的網(wǎng)頁結(jié)果如圖4-1所示。

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

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

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

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

Python2中使用的是urllib2庫來下載網(wǎng)頁,該庫的用法如下所示:

importurllib2
response=urllib2.urlopen('http://www.baidu.com')

Python3出現(xiàn)后,之前Python2中的urllib2庫被移到了urllib.request模塊中,之前urllib2中很多函數(shù)的路徑也發(fā)生了變化,希望大家在使用的時候多加注意。



猜你喜歡:

HTTP請求格式:請求行、請求頭詳細介紹【爬蟲工程師必會】

Python爬蟲難學(xué)嗎?學(xué)會需要多久?

網(wǎng)絡(luò)爬蟲獲取數(shù)據(jù)的5種方式【Python爬蟲】

多線程爬蟲是什么?多線程爬蟲流程分析

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

分享到:
在線咨詢 我要報名
和我們在線交談!