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

python下载图片怎么保存,python下载图片到文件夹 作为一个爬虫小白,我一直在学编程猫,最近编程猫从视频处理方面转战爬虫,我也沾了光……今天就分享一下批量爬取图片的方法PS:本文后还附赠了爬汇图网图片的方法我们本次要用到我们常用的requests库和字符库—re库,我们来介绍一下re库:Re库是Python的标准库,主要用于字符串匹配。import re正则表达式的表示类型:raw string类型(原生字符串类型):r'text'raw string是指不包含转义符的字符串string类型,更繁琐。 阅读详情

千库网图片下载助手开发

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


准备

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

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


图片URL分析

  • 任意一张『商用图库』下的图片,例如:科幻风格精美大气魔方背景
  • 按F12调出Google Chrome浏览器的调试工具,再按F5刷新页面重新加载数据
  • 按照下面图片提示操作:
  • 复制的网址为
https://i-blog.csdnimg.cn/blog_migrate/d8b6820d50d51a71a41687c395ca6dc1.jpeg!r850/fw/800

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

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

网页源代码分析

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

Ctl + U或者鼠标右键- - >查看网页源代码,接着按Ctl + F查找image URL
https://i-blog.csdnimg.cn/blog_migrate/d8b6820d50d51a71a41687c395ca6dc1.jpeg!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"><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:
        continue
        QKDownload()

代码说明:代码比较简单,想必大家都看的明白,在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 文件目录,其他的文件可以选择删除或者保留都没影响. 可以快捷方式到桌面.

测试图片的下载:

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


总结

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

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

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

后记

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

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


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

Python编写图片下载程序:如何使用Python下载图片 在上面的代码中,我们首先创建一个名为url的变量,其中包含图像的网址。在本文中,我们已经学习了如何使用Python编写一个简单的图片下载程序,该程序可以从任何网站下载图像,并在本地磁盘上保存它们。然后,我们可以使用os库来创建文件夹和保存下载的图像。在这篇文章中,我们将学习如何使用Python编写一个简单的图片下载程序,以便可以轻松地下载任何网站上的图片。在这里,我们编写了一个Python程序,该程序首先使用requests库从URL中获取图像数据,然后在本地磁盘上保存该图像。【Python代码】 阅读详情

相关推荐

Python实现图片下载

最后,我们在控制台打印相应的消息,以指示图片是否下载成功。库,它提供了简单而强大的功能来发送HTTP请求和处理响应。希望这个例子能帮助你理解如何使用Python下载图片。然后,我们检查响应的状态码是否为200,表示请求成功。如果指定的目录不存在,代码会自动创建它。这样可以逐块下载图片,避免一次性加载整个文件到内存中。在Python中,我们可以使用一些库和模块来下载图片。函数,它接受两个参数:要下载的图片的URL和要保存的路径。替换为你要下载的图片的实际URL,并将。在上面的代码中,我们定义了一个。

CyberLancer的博客 326

python 图片库_Python开发之千库网图片下载助手

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

weixin_39613188的博客 708

python:实现下载图片(附完整源码)

python:实现下载图片(附完整源码)

希望我的博客,能帮上你解决学习中工作中所遇到的问题 525

python爬虫技术——批量图片下载

今天是第二天,我又来啦每日清醒保持清醒,才能在人生的道路上稳健前行,无惧风雨。分享内容Python批量图片爬取今天要分享的是网络上图片的批量爬取,也是通过python,也算是一种爬虫技术吧。搜索引擎:Google环境:python环境工具:pycharm。

voiceless_Li的博客 2315

36套-图片大屏展示网站-HTML源码合集.zip

在当今竞争激烈的职场中,一个精心策划的个人作品展示网站可以成为您简历中的亮点,帮助您吸引面试官的注意力。这里为您提供了一份包含100套个人作品展示和图片展示的HTML源码合集包,让您轻松搭建专属于自己的在线作品集。 这份合集包的特点如下: 多样化模板:100套精心设计的模板,涵盖各种风格和布局,适合不同领域的作品展示,如摄影、设计、编程等,让您的个人作品更加引人注目。 响应式设计:所有模板均采用响应式设计,确保您的在线作品集在不同设备和屏幕尺寸上都能完美呈现,给面试官留下深刻印象。 易于定制:简洁的HTML和CSS代码,方便您根据个人需求进行修改和定制,让您的作品集更具个性。 通过使用我们的HTML源码合集包,您将能够快速搭建一个专业且独特的在线作品集,为您的简历增色添彩,吸引面试官的眼球。立即行动,让我们的模板帮助您在求职市场中脱颖而出!

C#实战:如何用Chart控件打造专业级数据可视化报表(附完整代码)

本文详细介绍了如何使用C#的Chart控件创建专业级数据可视化报表,涵盖柱状图、饼图和雷达图等多种图表类型的高级定制与交互增强。通过完整的代码示例,展示了从环境配置到动态数据绑定的全流程,助力开发者提升企业级应用的数据可视化能力。

ipfs8storage的博客 420

多功能图片爬取器源码分享(B站用)

import requests import re import csv print("欢迎使用多功能图片爬取器!作者Python狂MC小豆!\n如果异常退出(exe和Python终端)或报错(python编辑器)\n可能是由于图片或网站做了进一步的反爬虫\n本作品使用添加请求头的User-Agent来反防爬虫\n也有可能是你做了不正当的操作") def gif(): headers={'Use...

Python狂MC小豆的博客 477

智能座舱架构与芯片- (10) 音频篇 下

若将有限个 量化样值的绝对值从小到大依次排列,并对应地依次赋予一个十进制数字代码(例如,赋予样值0的十进制数字代码为0),在码前以“+”、“-”号为前缀,来 区分样值的正、负,则量化后的抽样信号就转化为按抽样时序排列的一串十进制数字码流,即十进制数字信号。如果声学密封不牢,来自内部结构的噪声可能到达传感器,两个传感器之间的泄漏可能降低BF算法的性能。未来,随着汽车电动化的普及,传统的ANC降噪所针对的发动机噪音已经不复存在,而路噪问题将越发明显,因此,全新的RNC主动路噪消减技术将会有一个更为宽广的市场。

joanna_xiao的博客 3838

DAMOYOLO-S基础教程:Gradio源码级定制——添加下载按钮与分享功能

本文介绍了如何在星图GPU平台上自动化部署DAMOYOLO-高性能通用检测模型-S镜像,并对其Gradio Web界面进行源码级定制。通过添加检测结果图片的下载按钮与分享功能,用户可轻松保存或共享目标检测结果,显著提升了该模型在安防监控、内容审核等场景下的实际应用便捷性与协作效率。

weixin_28736145的博客 393

win 11bitlocker恢复密匙一般情况的解决方式(这里指的是你现在使用的微软账户一直没有变更过)

本来没有打算写这一篇解决帖子的,但是最近好多微博的友友都在私我询问解决方法,孩子虽然很热心,但是真的回复不过来了,打字太累了,这里给大家简单指个路,希望能够对大家有所帮助。 当时出现这个问题的时候,一搜网上的解决方法都是重装系统什么的,真是吓死孩子啦。后来去微软的官网倒腾了半天解决了问题。其实只要你没有改过微软账户,你可以直接试试我这个方法,大概三到五分钟解决问题吧。 和我情况不一样的也可以参考一下贴吧里一些大佬的分享,或者实在着急我感觉去淘宝上找个解决也不是未尝不可。 出现问题: 解决方案: 直接去微软

zhiqingxue的博客 2万+

私彩视频开奖动画直播源码内部核心技术解析及修改可增加后台操控-持续更新文章!

其实在此很感谢能做出H5开奖系统的码农们,而我本人也喜欢分解此类的东西。 因为特殊原因,该东西本人就不做图片展示,以防他人商业化。 借用开奖摇奖代码首先分解首页index文件。代码如下:(后面持续在原有的作品上添加后台操作) 代码里写的//.....是我的注明代码的所需。 ​ &lt;!DOCTYPE html&gt; &lt;html&gt; &lt;head&gt; &lt;...

yugua3837的博客 5995

python爬虫利用requests和BeautifulSoup爬取美女图片

今天给大家分享一篇利用python爬取美女图片的文章 环境准备 开发环境:Windows 7 开发工具:Pycharm python版本:python3.7 第三方库:requests,Beautifulsoup 网站源码分析 首先在chrome浏览器中打开帅啊网里面的美女类别下的网址:http://www.shuaia.net/meinv/,打开后会看到各种类型的美女,随便选择一个...

lixiaosenlin的专栏 5092

CISP-PTE考前实操练习题

CISP-PTE考前学习练习题目,渗透测试功工程师

2301_79546223的博客 1998

python学习分享语法、游戏、爬虫

我是一名大一学生,经过网络大数据的推荐,我接触到了Python,本就对Python感兴趣的我非常心动,终于在上个寒假,非计算机专业的我开始了我的自学生涯。在自习途中有许多坎坷,没有老师可以帮助的我经常在网上寻找方法,来解决我在Python中遇到的许多问题。所以我希望能够在这里记录我的学习,和大家一起共同进步。

weixin_65985671的博客 314

YOLOv10改进策略【注意力机制篇】| 2024 蒙特卡罗注意力(MCAttn)模块,提高小目标的关注度

本文记录的是基于蒙特卡罗注意力(MCAttn)模块的YOLOv10目标检测改进方法研究。利用提高的跨尺度特征提取能力,使模型能够更好地传递和融合提取的多尺度特征,提高对小目标的关注度。Exploiting Scale-Variant Attention for Segmenting Small Medical Objects使用一种基于随机采样的池化操作来生成尺度无关的注意力图。它从三个不同尺度(3×33×33×3、2×22×22×2和1×11×11×1,即池化张量)中随机选择一个1×11×11×1注意力图

Limiiiing的博客 2186

潇洒郎: 小白一次性成功——红米 Note 12 5G Android12 系统13.0.16/14.0.9 小米红米手机解BL锁+ROOT-刷面具—官方ROM下载-线刷降级—解锁system系统分区

小白一次性成功——红米 Note 12 5G Android12 系统13.0.16/14.0.9 小米红米手机解BL锁+ROOT-刷面具—官方ROM下载-线刷降级—解锁system系统分区

潇洒郎的博客 4585

Python 下载图片的三种方法

import os os.makedirs('./image/', exist_ok=True) IMAGE_URL = "http://image.nationalgeographic.com.cn/2017/1122/20171122113404332.jpg" def urllib_download(): from urllib.request import urlretriev...

Bingo 3545

基于特征模仿的YOLOv5中间层知识蒸馏:原理、实现与实验全解析

目标检测中的模型轻量化是一个关键挑战。本文提出一种基于特征模仿(Feature Imitation)的YOLOv5中间层知识蒸馏方法,通过让学生模型学习教师模型的中间层特征表示,显著提升轻量级检测器的性能。我们将详细阐述蒸馏损失函数的设计、特征对齐策略、训练流程,并提供完整可运行的代码实现。同时,推荐多个适合蒸馏训练的数据集,并通过实验验证方法的有效性。

YOLO 185

Python爬虫实战(五):根据关键字爬取某度图片批量下载到本地(附上完整源码)

Python爬虫实战(五):根据关键字爬取某度图片批量下载到本地(附上完整源码)

努力让自己发光,对的人才能迎着光而来 14万+

lwip-2.0.3

lwip是瑞典计算机科学院(SICS)的Adam Dunkels 开发的一个小型开源的TCP/IP协议栈。实现的重点是在保持TCP协议主要功能的基础上减少对RAM 的占用。

TMS_WebGMaps_1.9.8.0_Full_Source

TMS_WebGMaps_1.9.8.0_Full_Source 全源码 delphi cbuilder

如何使用Python批量下载图片

爬虫程序在采集网页的过程中,需要从网上下载一些图片,比如表情包、壁纸、素材等,如果图片的数量很多,这样做就会非常麻烦和耗时。那么有没有更方便快捷的方法呢?答案是肯定的。我们可以利用Python编程语言来实现批量下载图片的功能。Python是一种简单易学、功能强大、跨平台的编程语言,它有很多优秀的第三方库和模块,可以帮助我们处理各种网络请求和数据处理。 具体来说,我们需要做以下几个步骤: ● 第一步:准备一个URL列表,也就是包含图片地址的文本文件或者Python列表。每个URL占一行或者一个元素。

ip16yun的博客 3010

老版QQ原生表情gif动态

这是老版的QQ表情,不过全是动态的的,Windows照片查看器是不会动的,可以右击用浏览器打开查看,再说一遍是老版的,只是分享给宁愿用老版也要动态的人。

使用python根据图片链接下载图片

根据图片链接下载图片

小伟的博客 1万+

jre9下载 jdk9

(Java SE Runtime Environment 9.0) 9.0u175 官方最新版 【x86|x64】

python入门实战:爬取图片到本地

简单记录一下爬取网站图片保存到本地指定目录过程,希望对刚入门的小伙伴有所帮助!3. 获取指定页数的页面路径。1.爬取每页的图片地址集合。

weixin_43401380的博客 556

python下载图片的三种方式

img_url是图片的链接,pic_id+’.jpg’为图片名字(可以指定完整路径) ######正常方式下载图片#### data=requests.get(img_url).content with open(pic_id+'.jpg','wb') as file: file.write(data) #####通过字节流下载图片#### with requests.get(img_url,stream=True) as imgbyte: #一直打开图片流 with open(pic_id+'.

qq_46020608的博客 1163

Python爬虫实战(七)——批量下载4K高清小姐姐图片(附上完整源码)

Python爬虫实战(七)——批量下载4K高清小姐姐图片(附上完整源码)

努力让自己发光,对的人才能迎着光而来 29万+

教你怎么使用python批量下载图片

通过调用该函数批量下载图片,并下载到指定位置。

cnfengzheng的博客 5540
上一篇: Problem for jupyter notebook -- IOPub data rate exceeded
下一篇: PDF电子书如何一键添加书签
AllenTCR
博客等级 码龄9年 182粉丝 29原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值