千库网图片下载助手开发

我是一个很爱美的人,写文章喜欢带点插图. 另外我也有一个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源文件,但是我觉得jpg和png差别不大吧?不过要是对图片有比较高的要求,当然是开会员啦,不过我插图的一般没什么很大的要求.

网页源代码分析

现在对图片的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.request

import urllib.error

import re

url = 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">

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:

continue

QKDownload()

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

开始我没有增加图片命名的,后来增加了一个.

打包为EXE可执行文件

准备工作

这里使用pyinstaller打包,Python也有很多其他的打包库,大家可以根据自己的喜欢选择,因为我个人觉得这个比较简单,也还可以满足大部分的需求.

更多的用法,大家可以自行查看文档.

另外可以增加一个 ico 图标,推荐一个网站:easyicon

开始生成EXE

按照下面的图片操作:

pyinstaller -F -i ico_filename.ico py_filename.py

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

测试使用

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

测试图片的下载:

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

总结

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

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

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

下载

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

免费评分:觉得有帮助的,请免费给我评分,谢谢.

码字不易,请评分鼓励支持一下. 如需更多Python,Python爬虫和数据分析学习教程,欢迎关注收听我,获取实时消息

python 图片库_Python开发之千库网图片下载助手相关推荐

  1. python界面设计资源库_python界面ui设计图-python界面ui设计模板-千库网

    开通元素VIP 设计不抠图 正版敢商用 免抠PNG下载即用 海量紧跟营销热点 商用版权设计无忧 低价0.27元/天享海量下载立即开通 开通元素VIP 设计不抠图 正版敢商用 免抠PNG下载即用 海量紧 ...

  2. python困难_Python开发总感觉困难重重,可能是你没用上这些开发工具

    Python工具多.功能搞不清.看见就头大?不存在的!千锋广州Python小编都帮你整理好了,快来上这波Python工具功能的车! Tkinter Python默认的图形界面接口.Tkinter是一个 ...

  3. python批量下载模库网图片

    这里写自定义目录标题 python批量下载模库网图片 步骤: 代码 python批量下载模库网图片 步骤: 获取页数 获取列表页 获取图片链接和名字相关字典 创建存放图片的文件夹 下载图片 代码 im ...

  4. Python+Django+Mysql开发在线美食推荐网 协同过滤推荐算法在美食网站中的运用 基于用户、物品的协同过滤推荐算法 个性化推荐算法、机器学习、分布式大数据、人工智能开发

    Python+Django+Mysql开发在线美食推荐网 协同过滤推荐算法在美食网站中的运用 基于用户.物品的协同过滤推荐算法 个性化推荐算法.机器学习.分布式大数据.人工智能开发 FoodRecom ...

  5. 最新手写图片爬虫(针对千库网和一个福利网站)

    前言:由于前一段时期需要从网站上扒一些图片下来,因为css,js都好扒,就是图片数量众多,需要代码实现,在网上找了一堆以实现的代码,要么没有用,要么功能不是自己想要的,干脆自己写一个,写的时候发现还挺 ...

  6. 爬取千库网ppt_python爬取千库网

    但是点进去就没了 这里先来测试是否有反爬虫 import requests from bs4 import BeautifulSoup import os html = requests.get('h ...

  7. 千图网免费下载工具(windows版)

    软件简介: 对于很对喜欢找图片的朋友都知道千图网吧,不知道得朋友就百度吧.软件来源于网络,低调使用. 下载地址: 地址: https://pan.baidu.com/s/1dy6ZwOscqhbS53 ...

  8. 抖音小视频、千图网图片等多平台的微航去水印微信小程序工具解析

    微航去水印的微信小程序工具是一款包含去除抖音小视频.千图网图片等多平台水印的功能,为更多自媒体创作者和设计师提供素材处理的强大工具. 使用说明: 1.每天签到获得10积分,去除一个小视频和图片水印消耗 ...

  9. Python爬虫-爬取快看漫画网图片并拼接成漫画长图

    Python爬虫-爬取快看漫画网图片并拼接成漫画长图 1.爬取图片 2.拼接图片 1.爬取图片 import os import requests from bs4 import BeautifulS ...

最新文章

  1. Code Forces Bear and Forgotten Tree 3 639B
  2. 使用fork并发处理多个client的请求和对等通信p2p
  3. LeetCode N-Queens
  4. 用Xamarin 实现园友的 :Android浮动小球与开机自启动
  5. 线性变化和非线性变化
  6. 私有云促进企业管理变革 助力企业快步前行
  7. mysql 主从备份问题_我遇到的mysql主从同步的问题
  8. 数据库-使用DataReader的简单实例(两种办法)
  9. SAP License:SAP 销售成本会计VS期间会计
  10. USTC 1119 graph 图的同构
  11. MySQL可不可以直接定义程序_mysql8 参考手册-定义存储程序
  12. 毕设题目:Matlab回归预测
  13. linux用Vim上传.sql,真的有(很多)linux大牛用vim写项目吗?
  14. 基于数码相机拍照图像分析的植被覆盖率(FVC)计算软件
  15. 百旺红字发票信息表显示服务器返回为空,红字发票信息表状态详细说明
  16. 浅谈To B与To C的区别
  17. 使用基于ggplot2的包ggalluvial绘制桑基图(冲积图)
  18. springboot多线程定时任务
  19. vscode 新版eslint自动修复_vscode自动修复eslint规范的插件及配置
  20. python篮球比赛预测数据分析统计服_用python基于2015-2016年的NBA常规赛及季后赛的统计数据分析...

热门文章

  1. Mac系统Sketch打不开闪退的处理方法
  2. 小学学计算机学flash动画,flash动画教学计划
  3. 分享三款免VIP软件,小众实用,正是你需要但没找到的
  4. MIT 计算机操作环境导论Missing Semester Lesson 9 安全和密码学
  5. k8s源码分析 pdf_如何高效阅读 Kubernetes 源码?
  6. 综合布线系统验收标准及内容
  7. 音乐乐队演出票务网站模板
  8. SourceInsight4.0破解方法
  9. OpenGL的矩阵变换详解——有图有真相
  10. Linux完全自学手册图文教程