千库网图片下载助手开发

我是一个很爱美的人,写文章喜欢带点插图. 另外我也有一个VX公众账号,写推文总需要点封面图片和插图的嘛,为了看起来更加美观和优雅. 为此我在网上找了写图片,但是直接通过右键下载感觉很麻烦,而且有些图片网站没办法右键,加上我有时候需要提取图片外链用于markdown编辑. 所以我打算用Python写一个EXE图片下载助手,下面是开发这个助手的详细教程.


准备

  • 图片网站:千库网
  • 『背景图库』『商用插图』
  • 工具:Google Chrome 浏览器,Python 3.6,jupyter notebook(Anaconda)
  • Python 库:urllib,re,pyinstaller

注:此网站没办法使用鼠标右键,故无法直接保存图片,直接截图得到的图片包含水印,很不方便使用.


图片URL分析

  • 任意一张『商用图库』下的图片,例如:科幻风格精美大气魔方背景
  • F12调出Google Chrome浏览器的调试工具,再按F5刷新页面重新加载数据
  • 按照下面图片提示操作:

  • 复制的网址为
http://bpic.588ku.com/back_pic/04/93/19/07591962bbc0b6c.jpg!r850/fw/800

浏览器地址栏粘贴后,打开,可以看到这个图片是有水印的

  • 去水印思路:通过观察image URL,可以看到后缀出现了jpg,所以我将网址jpg之后的删掉,再打开,就发现没有水印了,而且图片看起来也大了一点.
http://bpic.588ku.com/back_pic/04/93/19/07591962bbc0b6c.jpg
  • 和原图比较:最后我将图片下载下来,和原图做了些对比(网站限制每天可以免费下载一次),发现这样下载的图片没有原图那么大,其他详细的大家可以自行通过PS进行对比.原图下载有时候是png格式,有时候是jpg格式,部分图片有提供PSD源文件,但是我觉得jpgpng差别不大吧?不过要是对图片有比较高的要求,当然是开会员啦,不过我插图的一般没什么很大的要求.

网页源代码分析

现在对图片的url差不多分析好了,现在要在源代码里面抓取image url了. 接下来分析网页的源代码

Ctl + U或者鼠标右键- - >查看网页源代码,接着按Ctl + F查找image URL
http://bpic.588ku.com/back_pic/04/93/19/07591962bbc0b6c.jpg!r850/fw/800
然后的确存在这一的一个链接,如果找不到,可以尝试删掉一些参数测试.

然后还有『商用图库』的分析也是类似的,这里就不详细分析了,不过这里会存在一点问题,就是这个图库的图片有两种格式,横图竖图,在抓取的时候注意处理好就可以了,因为我们都是直接复制页面的url然后复制过去的.


写代码测试

message = ["http://588ku.com 千库网图片下载助手","下载说明:仅支持『背景图库』『商用插图』"," ","使用说明:","①在D盘新建一个文件夹“D:\图片素材”","②复制图片网址到软件,然后回车","③图片下载成功将储存在“D:\图片素材”"," "]
for i in range(0,len(message)):print(message[i])def QKDownload():import urllib.requestimport urllib.errorimport reurl = input('请输入图片网址:')headers = ("User-Agent","Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/68.0.3440.84 Safari/537.36")opener = urllib.request.build_opener()opener.addheaders = [headers]data = opener.open(url).read()data2 = data.decode("utf-8", "ignore")pat = 'img-l-box"><img src="(.*?)!|img id="qhimg" src="(.*?)!'imageURL = re.compile(pat).findall(data2)imageURL = max(imageURL)imageURL = "".join(imageURL)pat2 = 'fw/800" alt="([\u4e00-\u9fa5]+)|true" alt="([\u4e00-\u9fa5]+)'i = re.findall(pat2,data2)i = max(i)i = "".join(i)try:print(" ")print("开始下载......")file ="D:/图片素材/"+str(i)+".jpg"urllib.request.urlretrieve(imageURL,file)print(" ")print("下载成功!!!")print(" ")print('图片链接为:')print(" ")print(imageURL)print(" ")print("==============================================我是分割线==============================================")print(" ")print("继续下载......")print(" ")except urllib.error.URLError as e:if hasattr(e,"code"):print(e.code)if hasattr(e,"reason"):print(e.reason)           QKDownload()while True:QKDownload()if len(url) != 0:continueQKDownload()

代码说明:代码比较简单,想必大家都看的明白,在D盘建一个文件夹D:\图片素材,然后就可以在jupyter notebook或者Pycharm等IDE运行此代码了.
开始我没有增加图片命名的,后来增加了一个.


打包为EXE可执行文件

准备工作

这里使用pyinstaller打包,Python也有很多其他的打包库,大家可以根据自己的喜欢选择,因为我个人觉得这个比较简单,也还可以满足大部分的需求.
pyinstall 库官方文档
更多的用法,大家可以自行查看文档.
另外可以增加一个 ico 图标,推荐一个网站:easyicon

开始生成EXE

按照下面的图片操作:

pyinstaller -F -i ico_filename.ico py_filename.py

注:第一个是 ico 图标的名称,第二个是 py 文件名称(建议名称不要带中文,要修改EXE文件名可以到时候打包完成之后再修改)


测试使用

生成的 EXE 文件目录,其他的文件可以选择删除或者保留都没影响. 可以快捷方式到桌面.

测试图片的下载:

  • 『背景图库』的一张图片 http://588ku.com/ycbeijing/4490071.html
  • 『商用图库』的一张图片 http://588ku.com/ichahua/9695.html

复制浏览器地址栏的网址到下载助手,回车


总结

因为我写文章总是使用 Markdown 编辑的,所以我顺便输出了图片的外链. 由于这是我自己使用的,我直接在源代码添加了存储路径,当然大家也可以增加一个自定义存储路径. 如果大家觉得这个界面不好看,也可以增加一个 GUI 界面,这里我推荐使用 PyQt开发,原因是市面上关于Python GUI的书籍较少,然后其他的Python GUI 库文档不够丰富,而PyQtQt(C++开发)在Python的应用,所以文档很丰富,开发工具也比较强大和完善。

最后想学习PyQt的,我这里推荐一本书吧.很抱歉,我没有找到电子版,喜欢的可以自己想办法或者去购买.

其他的大家也可以参考这个办法去继续开发,或者自己写点脚本然后打包,方便自己的工作和学习.

后记

本教程仅学习研究,请不要将本教程用于其他用途.

打包的EXE文件下载:QkPic.exe  提取码:3ygz


欢迎关注我的个人公众账号:net咖啡屋

利用Python开发图片下载器之教程与源码分享相关推荐

  1. python 开发视频播放网站_python开发微电影视频网站教程附源码

    做为一个合格的Pythoner,只掌握一个框架是不够,如果你有过其它Python框架(例如django)的使用经验,对比不同框架的特性来学习,你将收获更多 当前信息若含有黄赌毒等违法违规不良内容,请点 ...

  2. Flask+VUE 实现页面增删改查显示开发+测试(图文教程附源码)

    目录 一.新建项目并初始化 二.安装依赖 axios.elementUI 三.Vue代码 四.进行接口联调 五.后端接口优化 六.web页面功能测试 七.总结 八.展望 九.附录(截止发文时的代码) ...

  3. 校园表白墙搭建教程及源码分享-麻木博客

    效果图: 操作环境: 宝塔面板 系统:CentOS Linux 7.5.1804 域名 最好有ssl证书这样可支持https 源码 Nginx与Apache环境均可 不需要配置伪静态 具体步骤: 1: ...

  4. python:实现Image Downloader图片下载器(附完整源码)

    python:实现Image Downloader图片下载器 def ImageDownloader(url):import os, re, requestsresponse = requests.g ...

  5. python图片转文字_【收藏】图片转成文字的方法总结,python批量图片转文字信息参考源码...

    在日常办公或者学习中,往往存在这样一个工作场景,比如,"老王,我这里有一张图片,你把里面的文字信息给我整理出来",都2021年了,你真的还在手敲图片文字信息么?那么还不赶紧收藏这篇 ...

  6. 【收藏】图片转成文字的方法总结,python批量图片转文字信息参考源码

    在日常办公或者学习中,往往存在这样一个工作场景,比如,"老王,我这里有一张图片,你把里面的文字信息给我整理出来",都2021年了,你真的还在手敲图片文字信息么?那么还不赶紧收藏这篇 ...

  7. 【iOS-Cocos2d游戏开发之二】Cocos2D 游戏开发资源贴(教程以及源码)

     李华明Himi 原创,转载务必在明显处注明: 转载自[黑米GameDev街区] 原文链接: http://www.himigame.com/iphone-cocos2d/420.html 这两天抽出 ...

  8. cocos creator开发的精灵大师小游戏源码分享,支持h5安卓微信小游戏等多平台

    截图说明 扫码支持一下 源码下载 https://download.csdn.net/download/qq_36303853/87124571

  9. Flask+mysql 实现增删改查接口开发+测试(图文教程附源码)

    目录 一.前言 二.环境准备 2.1 安装python 2.2 安装mysql 三.工具准备 3.1 安装pycharm 3.2 安装Navicat 3.3 安装postman 四.mysql数据库准 ...

最新文章

  1. day03-字符编码与转换
  2. mysql重装要删注册表_Mysql重装问题—删除注册表
  3. Loadrunner基础:Loadrunner Vuser基本概念和应用
  4. .Net中DataTable的保存
  5. 前端后分离深入分析 ——浏览器渲染和服务器渲染区别
  6. XManager:xshell显示图形化界面
  7. java获取表主外键_通过 jdbc 分析数据库中的表结构和主键外键
  8. PowerShell入门(三):如何快速地掌握PowerShell?
  9. 尚学堂java答案解析 第三章
  10. oracle数据库通过SQL profile 绑定SQL最优执行计划(个人实践)
  11. php wind8.5,PHPWind Forums下载
  12. sap系统登录时没有服务器,SAP登录到SAP系统
  13. 西门子G120调试参数设置
  14. SQL 数据库 学习 016 如何附加数据库
  15. python 更换列名
  16. WPS思维导图去除背景的网格
  17. 嵌入式系统的软件组成
  18. Rabbit MQ 基础
  19. 外星文明 未来计算机,科学家有望未来在地球“设计打印”外星生命
  20. 小米数据收集利器:AgentSource

热门文章

  1. 查看B站UP开播状态(通过uid查询)
  2. WPF ShowDialog切换其他应用后不显示的问题
  3. HTML5新标签有哪些呢?
  4. 案例分析 - 百度传课网易云课堂在线教育平台竞品分析
  5. 3dmax linux版本,[转载]如何安装Linux版FLOW-3D及注意事项
  6. 《破碎的残阳,我们逆光》连载小说- HashMap剖析
  7. 上拉滑动拖出控件 scrolllayout
  8. 基于Opencv快速实现人脸识别(完整版)
  9. ArcGIS API for javascript开发笔记 —— 地图打印
  10. python decode ignore_python编解码,decode参数设置:ignore