今天沒(méi)啥事兒就在網(wǎng)上溜達(dá),對(duì),只是溜達(dá)沒(méi)干別的,鼠標(biāo)點(diǎn)著點(diǎn)著進(jìn)了一個(gè)網(wǎng)站,一個(gè)妹子圖網(wǎng)站,然后然后就一發(fā)不可收拾,一看就是一個(gè)小時(shí)。自認(rèn)為自控力還可以,奈何里面的內(nèi)容太精彩了,什么高qing、午馬、shi身啊.........真吃雞,自己都控制不住自己,,,,

老司機(jī)開(kāi)車了,python爬蟲(chóng)之妹子圖!_第1張圖片

當(dāng)然,作為一名“技術(shù)人”,內(nèi)容肯定不會(huì)一點(diǎn)一點(diǎn)地去看,要看就要看過(guò)癮;然后一不小心就把里面的東西給全部下下來(lái)了,沒(méi)看錯(cuò)是全部下下來(lái)了,先看個(gè)效果圖:

老司機(jī)開(kāi)車了,python爬蟲(chóng)之妹子圖!_第2張圖片

老司機(jī)開(kāi)車了,python爬蟲(chóng)之妹子圖!_第3張圖片

網(wǎng)站是張這個(gè)樣子的:

老司機(jī)開(kāi)車了,python爬蟲(chóng)之妹子圖!_第4張圖片

廢話不多說(shuō),直接開(kāi)始爬取,首先我們把每個(gè)妹子的圖片統(tǒng)稱為一組照片

接著按「F12」打開(kāi)開(kāi)發(fā)者工具,想獲取每一組中的每張圖片的下載鏈接,我們需要知道每組照片的鏈接,也就是每張照片的入口所在;從源碼中可以看到每組圖片的鏈接是可以通過(guò)「li標(biāo)簽」下的?「href屬性」所獲取,所以每組圖片的入口可以很輕松地獲?。?

老司機(jī)開(kāi)車了,python爬蟲(chóng)之妹子圖!_第5張圖片

然后接下來(lái)需要獲取一下每組照片內(nèi)部每張照片下載url,任意選一組照片點(diǎn)進(jìn)去,圖片展示的樣式如下,是一張為一頁(yè)的展示方式;

老司機(jī)開(kāi)車了,python爬蟲(chóng)之妹子圖!_第6張圖片

依舊按按「F12」打開(kāi)開(kāi)發(fā)者工具,可以很方便地獲取到每張照片的下載地址,可以通過(guò)「a標(biāo)簽」下的?「src屬性」所獲?。?

老司機(jī)開(kāi)車了,python爬蟲(chóng)之妹子圖!_第7張圖片

有了圖片的源地址,接下來(lái)就是要開(kāi)始下載圖片了,可以利用利用requests去請(qǐng)求每張圖片,然后把請(qǐng)求的內(nèi)容二進(jìn)制(contend)以.jpg保存即可;因?yàn)槊繌垐D片是一頁(yè),所以如果想獲取全部圖片就通過(guò)簡(jiǎn)單構(gòu)造url的方式來(lái)完成。

以上已經(jīng)簡(jiǎn)單地分析了一下,接下來(lái)就要進(jìn)行編寫代碼了,首先構(gòu)造一個(gè)函數(shù)獲取每組照片的url,然后通過(guò)翻頁(yè)的方式實(shí)現(xiàn)全網(wǎng)每組照片的url的獲取:

老司機(jī)開(kāi)車了,python爬蟲(chóng)之妹子圖!_第8張圖片

在構(gòu)造一個(gè)函數(shù)就是對(duì)于每組圖片的爬取與下載,如下,先獲取每張圖片的url,通過(guò)requests進(jìn)行請(qǐng)求,把返回來(lái)的內(nèi)容以.jpg格式保存到文檔中

老司機(jī)開(kāi)車了,python爬蟲(chóng)之妹子圖!_第9張圖片

總的爬取效果如下,是不是很「吃雞」

老司機(jī)開(kāi)車了,python爬蟲(chóng)之妹子圖!_第10張圖片

對(duì)了,網(wǎng)站可能有簡(jiǎn)單的反爬措施,需要加一下「headers」,最好在訪問(wèn)的時(shí)候控制一下訪問(wèn)頻率,加一行「time.sleep(2)」即可。

老司機(jī)開(kāi)車了,python爬蟲(chóng)之妹子圖!_第11張圖片

想要本次教程「源碼」跟「福利」的,關(guān)注微信公眾號(hào): zeroing ,后臺(tái)回復(fù)關(guān)鍵詞: 妹子 即可