更新時(shí)間:2022-04-22 來源:黑馬程序員 瀏覽量:
urllib庫是Python內(nèi)置的HTTP請求庫,它可以看做是處理URL的組件集合。urllib庫包含了四大模塊,具體如下:
爬取網(wǎng)頁,其實(shí)就是通過URL獲取網(wǎng)頁信息,這段網(wǎng)頁信息的實(shí)質(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所示。
獲取的網(wǎng)頁源碼
實(shí)際上,如果我們在瀏覽器上打開百度首頁,右鍵選擇“查看源代碼”,你會發(fā)現(xiàn),跟我們剛才打印出來的是一模一樣。也就是說,上述案例僅僅用了幾行代碼,就已經(jīng)幫我們把百度首頁的全部代碼下載下來了。
Python2中使用的是urllib2庫來下載網(wǎng)頁,該庫的用法如下所示:
importurllib2 response=urllib2.urlopen('http://www.baidu.com')
Python3出現(xiàn)后,之前Python2中的urllib2庫被移到了urllib.request模塊中,之前urllib2中很多函數(shù)的路徑也發(fā)生了變化,希望大家在使用的時(shí)候多加注意。
HTTP請求格式:請求行、請求頭詳細(xì)介紹【爬蟲工程師必會】