文章较长,深夜时可以边听音乐边阅读 (*^▽^*)上一篇介绍了如何抓取一个图片网站下的mz,这里我们继续丰富上述内容
任务目标:
1. 抓取不同类型的图片
2. 编写一个GUI界面爬虫程序,打包成exe可执行文件
3. 遇到的难点
1. 分析如何抓取不同类型的图片
首先打开网站,可以看到有如下6个类型的菜单
点击不同菜单,发现url显示如下
大胸妹:https://www.buxiuse.com/?cid=2
小翘臀:https://www.buxiuse.com/?cid=6
可以看到每个类型图片对应不同的cid值
所以要想抓取不同类型的图片,只需要构造下url
将cid进行参数化,然后传给url即可
具体代码在下面给出
2. 利用tkinter进行GUI编程
之前有写过一些tkinter编程的随笔
例如 利用python制作一个翻译工具
先来看一下这次设计的程序最终页面布局,
然后再具体讲下如何实现的,页面布局如下:1. 选择图片存储路径
抓取到的图片要保存到电脑本地,所以就想着最好能够自己选取本地任意一个文件夹作为存储路径
后来网上冲浪一番发现tkinter是可以实现这个功能的
可以通过tkinter.filedialog模块中的askdirectory()方法实现
下面是在网上找到的一段示例代码
#coding:UTF-8from tkinter import *from tkinter.filedialog import askdirectorydef select_path(): path_ = askdirectory() path.set(path_)root = Tk()path = StringVar()Label(root,text = "目标路径:").grid(row = 0, column = 0)Entry(root, textvariable = path).grid(row = 0, column = 1)Button(root, text = "路径选择", command = select_path).grid(row = 0, column = 2)root.mainloop()
效果如下
具体到这个例子,
(1)定义一个文本框,用来存放(显示)选择的存储路径
self.input = tk.Entry(self.window, textvariable = self.path, width=80) # 创建一个输入框,显示图片存放路径
(2)定一个按钮,来触发选择本地路径功能
self.t_button = tk.Button(self.window, text='选择路径', relief=tk.RAISED, width=8, height=1, command=self.select_Path)
(3)定义一个函数,来实现选取路径功能
def select_Path(self): """选取本地路径""" path_ = askdirectory() self.path.set(path_)
后续保存图片时,路径可以直接使用前面定义好的的self.input中的值
2. 选择分类
因为图片分为了6个类别,每个类别对应一个cid值,所以可以事先把cid抽象出来,当作参数传递 (1)定义一个下拉框,存储图片类型self.menu['value'] = ('大胸妹','小翘臀', '黑丝袜', '美腿控', '有颜值','大杂烩')
(2)根据所选类型不同,返回不同的cid值
def get_cid(self): category = {
'DX': 2, 'XQT': 6, 'HSW': 7, 'MTK': 3, 'YYZ': 4, 'DZH': 5 } cid = None if self.menu.get() == "大胸妹": cid = category["DX"] elif self.menu.get() == "小翘臀": cid = category["XQT&#