前一阵因为一个项目中的图片下载需求,用python3写了个爬取网页图片的工具,中间碰到了不少问题,例如不同网页的图片地址格式不同,存放位置也不尽相同,就很让人头疼,趟了不少雷还好都解决了,客户是IT小白,所以操作界面必须也得傻瓜式的简单易懂,吐槽一下wxpython开发界面真够原始的。
关于文本框组件的提示信息处理费了一番周折,文本框组件的名称为wx.TextCtrl,为了让客户能知道该文本框需要填写啥信息,需要在文本框中给出提示,鼠标点击进行编辑状态时该提示信息要消失,如果鼠标移走没有填写任何信息,也要恢复该提示信息,如果填写了信息,就不需要显示提示信息了。闲话少提,直捣黄龙,直接上代码。
self.keywordinput为文本框组件,self.keywordinput_hint为提示信息
self.keywordinput.Bind(wx.EVT_SET_FOCUS, self.OnKeyWordInputGetFocus)
self.keywordinput.Bind(wx.EVT_KILL_FOCUS, self.OnKeyWordInputLostFocus)
# 获取焦点事件
def OnKeyWordInputGetFocus(self, e):
if self.keywordinput.GetValue()==self.keywordinput_hint:
self.keywordinput.SetValue("")
self.keywordinput.SetEditable(True)
e.Skip()
# 失去焦点事件
def OnKeyWordInputLostFocus(self, e):
if self.keywordinput.GetValue().strip()=="":
self.keywordinput.SetValue(self.keywordinput_hint)
self.keywordinput.SetEditable(False)
e.Skip()
工具有如下特点:
1、支持百度图片、360图片、搜狗图片等知名图片网站的图片下载,可自动把图片搜索结果下载到本地计算机。
imgsitelist = [imgsite_baidu,imgsite_360,imgsite_sogou,imgsite_nitu,imgsite_huitu]
self.cbximgsite=wx.ComboBox(autopanel, -1, pos=(90, 120+bgnY), size=(150, -1),
choices=imgsitelist, style=wx.CB_READONLY)
self.cbximgsite.SetValue(imgsite_baidu)
self.cbximgsite.SetToolTip("请选择图片网站")
2、支持用户指定的单个或多个网址页面图片下载,支持页面地址文件或图片地址文件的图片批量下载
list1 = ["填写普通网址", "填写模板网址", "导入网址文件","导入图片网址文件"]
self.radioboxgroup1 = wx.RadioBox(manpanel, -1, "步骤1:请填写或导入图片网页地址", (10,
80+bgnY), (280, 20), list1, 4, wx.RA_HORIZONTAL)
list2, 3, wx.RA_SPECIFY_ROWS)
self.radioboxgroup1.Bind(wx.EVT_RADIOBOX, self.PageKind_RadioBox_Click)
3、支持自定义图片存储目录,支持抓取过程查看已下载图,支持手工中断抓取
wx.StaticText(commonpanel, -1, "步骤2:请填写图片存放目录名称", (20,220+bgnY),
(250, -1))
self.imgdirinput_hint='例如美女、汽车等'
self.imgdirinput=wx.TextCtrl(commonpanel, value=self.imgdirinput_hint, pos=(20, 250+bgnY), size=(300, -1))
self.imgdirinput.SetToolTip("图片存放目录的根目录默认为当前目录下的image文件夹")
感兴趣的同学可以下载体验,相关领域开发者欢迎在评论区留言交流。
下载地址:
http://www.tomsoftcent:8180/download/网页图片抓取大师.rar
把这个地址复制到浏览器地址栏中直接回车即可下载。
1、下载后解压缩到本地,双击refreshpage_get_page_image.exe即可启动本软件
2、选择各大图片网站或指定抓取网站
a、选择搜索引擎图片网站或知名图片网站
b、填写要下载网页的地址,从浏览器中直接粘贴过来即可;或者从网址文件直接导入,支持文本文件一个网址一行
3、填写存储图片文件夹名称,例如汽车、装修等等,可设置自动创建图片分类目录
4、点击“开始抓取”按钮即可,抓取过程中会显示日志
5、抓取过程中可以点击“打开图片目录”按钮查看已下载的图片
更多推荐
抓取网页图片项目的一些感悟
发布评论