python爬蟲(chóng)學(xué)習(xí)教程:爬取男生喜歡的圖片

任務(wù)目標(biāo):
1.抓取不同類型的圖片
2.編寫(xiě)一個(gè)GUI界面爬蟲(chóng)程序,打包成exe重新文件
3.遇到的難點(diǎn)
1.分析如何抓取不同類型的圖片
首先打開(kāi)網(wǎng)站,可以看到有如下6個(gè)類型的菜單
在這里插入圖片描述
點(diǎn)擊不同菜單,發(fā)現(xiàn)URL顯示如下
大胸妹:https:/cid = 2
小翹臀:https:/cid = 6
可以看到每個(gè)類型圖片對(duì)應(yīng)不同的cid值
所以要想抓取不同類型的圖片,只需要構(gòu)造下url
將cid進(jìn)行參數(shù)化,然后傳給url即可
具體代碼在以下定義
2.利用tkinter進(jìn)行GUI編程
之前有寫(xiě)過(guò)一些tkinter編程的隨筆
例如 利用python制作一個(gè)翻譯工具
先來(lái)看一下這次設(shè)計(jì)的程序最終頁(yè)面布局,
然后再具體講下如何實(shí)現(xiàn)的,頁(yè)面布局如下:
選擇圖片存儲(chǔ)路徑
抓取到的圖片要保存到電腦本地,所以就想著最好能夠自己挑選本地任意一個(gè)文件夾作為存儲(chǔ)路徑
后來(lái)網(wǎng)上沖浪一番發(fā)現(xiàn)tkinter是可以實(shí)現(xiàn)這個(gè)功能的
可以通過(guò)tkinter.filedialog模塊中的askdirectory()方法實(shí)現(xiàn)
下面是在網(wǎng)上找到的一段示例代碼
具體到這個(gè)例子,
(1)定義一個(gè)文本框,用來(lái)存放(顯示)選擇的存儲(chǔ)路徑
(2)定一個(gè)按鈕,來(lái)觸發(fā)選擇本地路徑功能
(3)定義一個(gè)函數(shù),來(lái)實(shí)現(xiàn)選取路徑功能
后續(xù)保存圖片時(shí),路徑可以直接使用前面定義好的的self.input中的值
選擇分類
因?yàn)閳D片分為了6個(gè)類別,每個(gè)類別對(duì)應(yīng)一個(gè)cid值,所以可以預(yù)先把cid抽象出來(lái),視為參數(shù)傳遞 (1)定義一個(gè)拖動(dòng)框,存儲(chǔ)圖片類型
(2)根據(jù)選擇性類型不同,返回不同的cid值
3.填寫(xiě)爬取頁(yè)數(shù)

在這里插入圖片描述
自定義抓取深度,某些抓取前5頁(yè)或者前10頁(yè)
后面把這個(gè)文本文本的值傳給url即可
3.遇到的問(wèn)題
下載圖片的名稱無(wú)效,導(dǎo)致無(wú)法保存
有些圖片沒(méi)有名稱,文件名就是.jpg, 這樣在保存時(shí)會(huì)提示非法字符無(wú)法保存,程序也會(huì)報(bào)錯(cuò),終止運(yùn)行。
為了解決這個(gè)問(wèn)題,我在每個(gè)文件名的末尾都加一個(gè)字母,這樣就不會(huì)存在無(wú)名稱圖片了
整體效果如下:

搜索下方加老師微信
老師微信號(hào):XTUOL1988【切記備注:學(xué)習(xí)Python】
領(lǐng)取Python web開(kāi)發(fā),Python爬蟲(chóng),Python數(shù)據(jù)分析,人工智能等精品學(xué)習(xí)課程。帶你從零基礎(chǔ)系統(tǒng)性的學(xué)好Python!
*聲明:本文于網(wǎng)絡(luò)整理,版權(quán)歸原作者所有,如來(lái)源信息有誤或侵犯權(quán)益,請(qǐng)聯(lián)系我們刪除或授權(quán)

