爬蟲實戰(zhàn)|2.5w+張4k高清壁紙爬取~
??點擊關(guān)注|設(shè)為星標(biāo)|干貨速遞??
大家好,我是小菜鳥~
最近在網(wǎng)上發(fā)現(xiàn)了一些非常適合猛男的壁紙,然后就用爬蟲程序給爬取了下來。而且獨樂樂不如眾樂樂,大家一起分享快樂的同時,也可以學(xué)到一定的知識~
01
頁面分析
首先我們按F12打開開發(fā)者模式,對name里面的網(wǎng)頁進行觀察,發(fā)現(xiàn)我們要的圖片URL存在源網(wǎng)頁中,如圖:
但是,我們發(fā)現(xiàn)這個圖片的URL并不完整,我們來觀察一下完整的URL,看看兩者之間有何聯(lián)系,如圖:
我們發(fā)現(xiàn),圖片的URL就是https://pic.netbian.com+src里面內(nèi)容。
好,我們現(xiàn)在找到了數(shù)據(jù)之間的規(guī)律,我們現(xiàn)在就要開始提取數(shù)據(jù)了。
02
數(shù)據(jù)采集
我們結(jié)合之前的頁面分析,發(fā)現(xiàn)選用正則表達式對圖片的URL和名字進行提取最為方便,代碼如下:
url = f'https://pic.netbian.com/index_{page}.html'
r = requests.get(url)
r.encoding = r.apparent_encoding
hrefs = re.findall('<img src="(.*?jpg)"',r.text)
names = re.findall('<b>(.*?)</b>',r.text)
讓我們來看看提取的數(shù)據(jù):
效果很好,沒有什么問題,那我們就可以開始著手準(zhǔn)備存儲圖片了。
03
數(shù)據(jù)存儲
數(shù)據(jù)存儲的方式在之前的文章已經(jīng)講的很清楚了,這里我們不在詳細(xì)介紹,只提供一下圖片存儲的思路:圖片是以二進制數(shù)據(jù)的方式存儲的,我們只需將其以二進制的方式存儲到txt文件中即可。代碼如下:
pic_url = 'https://pic.netbian.com' + hrefs[i]
pic = requests.get(pic_url)
with open(f'{names[i]}.jpg', 'ab') as f:
f.write(pic.content)
讓我們來看看效果圖:
04
小結(jié)
1. 本文詳細(xì)的介紹了如何獲取高清4k壁紙圖,請讀者仔細(xì)閱讀,并加以操作。
2. requests庫提供了content用以提取圖片二進制數(shù)據(jù)
3. 在存儲二進制文件時需要在存儲方式后面加個b,如‘a(chǎn)b’。
4. 本文僅供學(xué)習(xí)參考,不做它用
5. 后臺回復(fù)[壁紙]即可獲得源代碼。
推薦閱讀
??點擊關(guān)注|設(shè)為星標(biāo)|干貨速遞??
