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

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

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

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

