这篇文章主要介绍了Python3通过request.urlopen实现Web网页图片下载,感兴趣的小伙伴们可以参考一下
先来介绍一些python web编程基础知识
1. GET与POST区别
1)POST是被设计用来向web服务器上放东西的,而GET是被设计用来从服务器取东西的,GET也能够向服务器传送较少的数据,而Get之所以也能传送数据,只是用来设计告诉服务器,你到底需要什么样的数据.POST的信息作为HTTP 请求的内容,而GET是在HTTP 头部传输的;
2)POST与GET在HTTP 中传送的方式不同,GET的参数是在HTTP 的头部传送的,而Post的数据则是在HTTP 请求的内容里传送;
3)POST传输数据时,不需要在URL中显示出来,而GET方法要在URL中显示;
4)GET方法由于受到URL长度的限制,只能传递大约1024字节;POST传输的数据量大,可以达到2M
2. Cookies技术
Cookies现在经常被大家提到,那么到底什么是Cookies,它有什么作用 呢?
Cookies是一种能够让网站服务器把少量数据储存到客户端的硬盘或内存,或是从客户端的硬盘读取数据的一种技术。Cookies是当你浏览某网站 时,由Web服务器置于你硬盘上的一个非常小的文本文件,它可以记录你的用户ID、密码、浏览过的网页、停留的时间等信息。
当你再次来到该网站时,网站通过读取Cookies,得知你的相关信息,就可以做出相应的动作,如在页面显示欢迎你的标语,或者让你不用输入ID、密码就直接登录等等。
从本质上讲,它可以看作是你的身份证。但Cookies不能作为代码执行,也不会传送病毒,且为你所专有,并只能由提供它的服务器来读取。
保存的信息片断以“名/值”对(name-value pairs)的形式储存,一个“名/值”对仅仅是一条命名的数据。
一个网站只能取得它放在你的电脑中的信息,它无法从其它的Cookies文件中取得信息,也无法得到你的电脑上的其它任何东西。
Cookies中的内容大多数经过了加密处理,因此一般用户看来只是一些毫无意义的字母数字组合,只有服务器的CGI处理程序才知道它们真正的含义。
Python3通过Web网页图片下载基本功能点
要实现的主要功能点:
解析网页中的图片链接
对图片链接进行检测,如果图片格式 图片大小不符合要求,则不下载
加入异常处理机制
自动文件名提取,从图片链接直接提取文件名
Python3通过Web网页图片下载参考代码:
from urllib import request import threading from time import sleep,ctime from html import parser def downjpg( filepath,FileName ="default.jpg" ): try: web = request.urlopen( filepath) print("访问网络文件"+filepath+"\n") jpg = web.read() DstDir="E:\\image\\" print("保存文件"+DstDir+FileName+"\n") try: File = open( DstDir+FileName,"wb" ) File.write( jpg) File.close() return except IOError: print("error\n") return except Exception: print("error\n") return def downjpgmutithread( filepathlist ): print("共有%d个文件需要下载"%len(filepathlist)) for file in filepathlist: print( file ) print("开始多线程下载") task_threads=[] #存储线程 count=1 for file in filepathlist: t= threading.Thread( target=downjpg,args=(file,"%d.jpg"%count) ) count=count+1 task_threads.append(t) for task in task_threads: task.start() for task in task_threads: task.join() #等待所有线程结束 print("线程结束") class parserLinks( parser.HTMLParser): filelist=[] def handle_starttag(self,tag,attrs): if tag == 'img': for name,value in attrs: if name == 'src': print( value) self.filelist.append(value) #print( self.get_starttag_text() ) def getfilelist(self): return self.filelist def main(WebUrl): #globals flist if name == "main": lparser = parserLinks() web = request.urlopen( WebUrl ) #context= web.read() for context in web.readlines(): _str="%s"%context try: lparser.feed( _str) except parser.HTMLParseError: #print( "parser error") pass web.close() imagelist= lparser.getfilelist() downjpgmutithread( imagelist) #downjpgmutithread( flist) #WebUrl="http://www.baidu.com/" #要抓去的网页链接,默认保存到e盘 WebUrl="http://hi.baidu.com/yuyinxuezi/item/df0b59140a06be27f6625cd4" main(WebUrl)
以上就是Python3实现Web网页图片下载的相关介绍,希望对大家的学习有所帮助。
以上是利用Python3实现Web网页图片下载的详细内容。更多信息请关注PHP中文网其他相关文章!

Linux终端中查看Python版本时遇到权限问题的解决方法当你在Linux终端中尝试查看Python的版本时,输入python...

本文解释了如何使用美丽的汤库来解析html。 它详细介绍了常见方法,例如find(),find_all(),select()和get_text(),以用于数据提取,处理不同的HTML结构和错误以及替代方案(SEL)

Python 对象的序列化和反序列化是任何非平凡程序的关键方面。如果您将某些内容保存到 Python 文件中,如果您读取配置文件,或者如果您响应 HTTP 请求,您都会进行对象序列化和反序列化。 从某种意义上说,序列化和反序列化是世界上最无聊的事情。谁会在乎所有这些格式和协议?您想持久化或流式传输一些 Python 对象,并在以后完整地取回它们。 这是一种在概念层面上看待世界的好方法。但是,在实际层面上,您选择的序列化方案、格式或协议可能会决定程序运行的速度、安全性、维护状态的自由度以及与其他系

本文比较了Tensorflow和Pytorch的深度学习。 它详细介绍了所涉及的步骤:数据准备,模型构建,培训,评估和部署。 框架之间的关键差异,特别是关于计算刻度的

Python的statistics模块提供强大的数据统计分析功能,帮助我们快速理解数据整体特征,例如生物统计学和商业分析等领域。无需逐个查看数据点,只需查看均值或方差等统计量,即可发现原始数据中可能被忽略的趋势和特征,并更轻松、有效地比较大型数据集。 本教程将介绍如何计算平均值和衡量数据集的离散程度。除非另有说明,本模块中的所有函数都支持使用mean()函数计算平均值,而非简单的求和平均。 也可使用浮点数。 import random import statistics from fracti

该教程建立在先前对美丽汤的介绍基础上,重点是简单的树导航之外的DOM操纵。 我们将探索有效的搜索方法和技术,以修改HTML结构。 一种常见的DOM搜索方法是EX

本文讨论了诸如Numpy,Pandas,Matplotlib,Scikit-Learn,Tensorflow,Tensorflow,Django,Blask和请求等流行的Python库,并详细介绍了它们在科学计算,数据分析,可视化,机器学习,网络开发和H中的用途

本文指导Python开发人员构建命令行界面(CLIS)。 它使用Typer,Click和ArgParse等库详细介绍,强调输入/输出处理,并促进用户友好的设计模式,以提高CLI可用性。


热AI工具

Undresser.AI Undress
人工智能驱动的应用程序,用于创建逼真的裸体照片

AI Clothes Remover
用于从照片中去除衣服的在线人工智能工具。

Undress AI Tool
免费脱衣服图片

Clothoff.io
AI脱衣机

AI Hentai Generator
免费生成ai无尽的。

热门文章

热工具

SublimeText3 英文版
推荐:为Win版本,支持代码提示!

mPDF
mPDF是一个PHP库,可以从UTF-8编码的HTML生成PDF文件。原作者Ian Back编写mPDF以从他的网站上“即时”输出PDF文件,并处理不同的语言。与原始脚本如HTML2FPDF相比,它的速度较慢,并且在使用Unicode字体时生成的文件较大,但支持CSS样式等,并进行了大量增强。支持几乎所有语言,包括RTL(阿拉伯语和希伯来语)和CJK(中日韩)。支持嵌套的块级元素(如P、DIV),

适用于 Eclipse 的 SAP NetWeaver 服务器适配器
将Eclipse与SAP NetWeaver应用服务器集成。

SublimeText3 Mac版
神级代码编辑软件(SublimeText3)

螳螂BT
Mantis是一个易于部署的基于Web的缺陷跟踪工具,用于帮助产品缺陷跟踪。它需要PHP、MySQL和一个Web服务器。请查看我们的演示和托管服务。