任务目标:
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爬虫资料,关注下面公众号发送“388”领取