任務目標:
1.抓取不同類型的圖片
2.編寫一個GUI界面爬蟲程序,打包成exe重新文件
3.遇到的難點
1.分析如何抓取不同類型的圖片
首先打開網站,可以看到有如下6個類型的菜單
在這裏插入圖片描述
點擊不同菜單,發現URL顯示如下
大胸妹:https:/cid = 2
小翹臀:https:/cid = 6
可以看到每個類型圖片對應不同的cid值
所以要想抓取不同類型的圖片,只需要構造下url
將cid進行參數化,然後傳給url即可
具體代碼在以下定義
2.利用tkinter進行GUI編程
之前有寫過一些tkinter編程的隨筆
例如 利用python制作一個翻譯工具
先來看一下這次設計的程序最終頁面布局,
然後再具體講下如何實現的,頁面布局如下:
選擇圖片存儲路徑
抓取到的圖片要保存到電腦本地,所以就想著最好能夠自己挑選本地任意一個文件夾作爲存儲路徑
後來網上沖浪一番發現tkinter是可以實現這個功能的
可以通過tkinter.filedialog模塊中的askdirectory()方法實現
下面是在網上找到的一段示例代碼
具體到這個例子,
(1)定義一個文本框,用來存放(顯示)選擇的存儲路徑
(2)定一個按鈕,來觸發選擇本地路徑功能
(3)定義一個函數,來實現選取路徑功能
後續保存圖片時,路徑可以直接使用前面定義好的的self.input中的值
選擇分類
因爲圖片分爲了6個類別,每個類別對應一個cid值,所以可以預先把cid抽象出來,視爲參數傳遞 (1)定義一個拖動框,存儲圖片類型
(2)根據選擇性類型不同,返回不同的cid值
3.填寫爬取頁數
在這裏插入圖片描述
自定義抓取深度,某些抓取前5頁或者前10頁
後面把這個文本文本的值傳給url即可
3.遇到的問題
下載圖片的名稱無效,導致無法保存
有些圖片沒有名稱,文件名就是.jpg, 這樣在保存時會提示非法字符無法保存,程序也會報錯,終止運行。
爲了解決這個問題,我在每個文件名的末尾都加一個字母,這樣就不會存在無名稱圖片了
整體效果如下:
*聲明:本文于網絡整理,版權歸原作者所有,如來源信息有誤或侵犯權益,請聯系我們刪除或授權事宜。
寫在最後
文章可能寫的有點水,但是我只是想給大家一個堅持下去的理由,不能堅持的小夥伴看看上面的話吧~相信能夠幫助大家!
最後!只要你轉發文章+私信小編(學習)即可免費獲得一套python爬蟲全套資料以及2020年最新的Python學習七大階段路線和400集python學習教程!
階段一:Python基礎知識和高級特性
1、Python語法基礎
2、Python字符串解析
3、Python時間和日曆
4、Python文件操作
5、Python面向對象
6、並發編程
7、函數式編程
8、正則表達式
9、設計模式
10、排序算法
11、異常
12、模塊
階段二:Linux基礎
1、shell操作
2、系統管理
3、常用Linux命令
4、常見Linux系統
5、HDFS搭建
階段三:數據庫原理和sql優化
1、Linux下MySQL數據庫
2、數據庫設計和SQL標准
3、Python數據庫操作的庫
4、Linux下MongoDB非關系型數據庫
5、SQL優化和數據庫優化
6、ORM對象關系映射基本思想
階段四:前端web開發
1、Html
2、CSS
3、PC端頁面開發實戰流程
4、Bootstrap
5、html5和css3
6、JQuery
階段五:Python Web後端開發
1、Django 框架開發
2、Nginx配置和uWSGI部署
3、RESTful接口開發
4、Flask框架開發
5、電商平台項目
6、BBS論壇系統
階段六:爬蟲和數據分析
1、第一個Python網絡爬蟲
2、專業HTTP分析工具Fiddler的使用
3、實際爬蟲Python編碼問題
4、urllib2 的使用TesseractOCR語言模型爬取使用帶驗證碼登錄的網站
5、Beautiful Soup
6、XPath & CSS選擇器
7、PhantomJS
8、SeleniumWebdriver
9、Scrapy大型框架使用代理服務器爬取
10、Scrapy分布式集群多代理爬蟲Redis
11、分布式集群Redis MongoDB在爬蟲裏的應用
12、數據分析工具與模塊
階段七:Python人工智能
1、機器學習
3、深度學習