Python版本:2.7 Python因其簡潔及易讀性廣泛用于運(yùn)維、爬蟲和數(shù)據(jù)方面。 現(xiàn)在我們開始來編寫第一只爬蟲,首先需要有Python的環(huán)境,參考Python環(huán)境搭建及IDE選擇進(jìn)行安裝。接下來需要導(dǎo)入相關(guān)模塊,這只用到Python標(biāo)準(zhǔn)庫里的三個(gè)模塊就可以實(shí)現(xiàn)簡單的爬蟲。urllib模塊用來下載圖片,urllib2模塊用來請(qǐng)求目標(biāo)網(wǎng)站獲取響應(yīng)的內(nèi)容,而re模塊則是用來匹配字符串,提取有用的數(shù)據(jù)信息。 import urllib 爬蟲主要是模擬人和瀏覽器來訪問目標(biāo)網(wǎng)站獲取響應(yīng)內(nèi)容解析提取相關(guān)數(shù)據(jù)。下面要實(shí)現(xiàn)的爬蟲的功能是獲取百度貼吧樓層里的所有壁紙圖片。那么代碼需要實(shí)現(xiàn)模擬瀏覽器的行為,也就是訪問貼吧地址,獲取response內(nèi)容解析后找到所有的圖片地址并將所有圖片保存下來。 電腦與服務(wù)器 先創(chuàng)建Request對(duì)象再使用urlopen請(qǐng)求目標(biāo)網(wǎng)站,雖然可以直接使用urlopen請(qǐng)求目標(biāo)網(wǎng)站,但是后續(xù)無法構(gòu)造headers信息。read方法讀取響應(yīng)的內(nèi)容,查看網(wǎng)頁源代碼是utf-8編碼方式為了防止編碼問題對(duì)讀取的內(nèi)容進(jìn)行解碼操作。因要提取的內(nèi)容為圖片,所有構(gòu)建正則表達(dá)式字符串并使用re.find_all獲取所有的圖片鏈接,此時(shí)urls對(duì)象是列表,for循環(huán)遍歷所有的鏈接后用urlretrieve方法下載圖片文件。 def download_jpg(url): # 創(chuàng)建request對(duì)象
# 請(qǐng)求request對(duì)象
# 打印狀態(tài)碼
# 讀取相應(yīng)的內(nèi)容,decode是根據(jù)網(wǎng)頁編碼方式進(jìn)行解碼
# 正則表達(dá)式字符串
# 找出所有符合正則表達(dá)式的字符串,返回的是列表
# 循環(huán)打印所有url
# 下載所有的圖片,注意文件名稱帶.jpg
End. 作者:簡楊 (中國統(tǒng)計(jì)網(wǎng)特邀認(rèn)證作者) 本文為中國統(tǒng)計(jì)網(wǎng)原創(chuàng)文章,需要轉(zhuǎn)載請(qǐng)聯(lián)系中國統(tǒng)計(jì)網(wǎng)(),轉(zhuǎn)載時(shí)請(qǐng)注明作者及出處,并保留本文鏈接。
|
|