问答文章1 问答文章501 问答文章1001 问答文章1501 问答文章2001 问答文章2501 问答文章3001 问答文章3501 问答文章4001 问答文章4501 问答文章5001 问答文章5501 问答文章6001 问答文章6501 问答文章7001 问答文章7501 问答文章8001 问答文章8501 问答文章9001 问答文章9501

Python怎么获取HTML里的图片,并且显示出来

发布网友 发布时间:2022-04-23 05:39

我来回答

2个回答

懂视网 时间:2022-04-18 10:22

本文主要介绍了Python实现简单网页图片抓取完整代码实例,具有一定借鉴价值,需要的朋友可以参考下。

利用python抓取网络图片的步骤是:
1、根据给定的网址获取网页源代码
2、利用正则表达式把源代码中的图片地址过滤出来
3、根据过滤出来的图片地址下载网络图片

以下是比较简单的一个抓取某一个百度贴吧网页的图片的实现:


# -*- coding: utf-8 -*- 
# feimengjuan 
import re 
import urllib 
import urllib2 
#抓取网页图片 
#根据给定的网址来获取网页详细信息,得到的html就是网页的源代码 
def getHtml(url): 
 page = urllib.urlopen(url) 
 html = page.read() 
 return html 
 def getImg(html): 
 #利用正则表达式把源代码中的图片地址过滤出来 
 reg = r'src="(.+?.jpg)" pic_ext' 
 imgre = re.compile(reg) 
 imglist = imgre.findall(html) #表示在整个网页中过滤出所有图片的地址,放在imglist中 
 x = 0 
 for imgurl in imglist: 
 urllib.urlretrieve(imgurl,'%s.jpg' %x) #打开imglist中保存的图片网址,并下载图片保存在本地 
 x = x + 1 
 html = getHtml("http://tieba.baidu.com/p/2460150866")#获取该网址网页详细信息,得到的html就是网页的源代码 
getImg(html)#从网页源代码中分析并下载保存图片

进一步对代码进行了整理,在本地创建了一个“图片”文件夹来保存图片


# -*- coding: utf-8 -*- 
# feimengjuan 
import re 
import urllib 
import urllib2 
import os 
#抓取网页图片 
#根据给定的网址来获取网页详细信息,得到的html就是网页的源代码 
def getHtml(url): 
 page = urllib.urlopen(url) 
 html = page.read() 
 return html 
 
#创建保存图片的文件夹 
def mkdir(path): 
 path = path.strip() 
 # 判断路径是否存在 
 # 存在 True 
 # 不存在 Flase 
 isExists = os.path.exists(path) 
 if not isExists: 
 print u'新建了名字叫做',path,u'的文件夹' 
 # 创建目录操作函数 
 os.makedirs(path) 
 return True 
 else: 
 # 如果目录存在则不创建,并提示目录已经存在 
 print u'名为',path,u'的文件夹已经创建成功' 
 return False 
# 输入文件名,保存多张图片 
def saveImages(imglist,name): 
 number = 1 
 for imageURL in imglist: 
 splitPath = imageURL.split('.') 
 fTail = splitPath.pop() 
 if len(fTail) > 3: 
 fTail = 'jpg' 
 fileName = name + "/" + str(number) + "." + fTail 
 # 对于每张图片地址,进行保存 
 try: 
 u = urllib2.urlopen(imageURL) 
 data = u.read() 
 f = open(fileName,'wb+') 
 f.write(data) 
 print u'正在保存的一张图片为',fileName 
 f.close() 
 except urllib2.URLError as e: 
 print (e.reason) 
 number += 1 
#获取网页中所有图片的地址 
def getAllImg(html): 
 #利用正则表达式把源代码中的图片地址过滤出来 
 reg = r'src="(.+?.jpg)" pic_ext' 
 imgre = re.compile(reg) 
 imglist = imgre.findall(html) #表示在整个网页中过滤出所有图片的地址,放在imglist中 
 return imglist 
#创建本地保存文件夹,并下载保存图片 
if __name__ == '__main__': 
 html = getHtml("http://tieba.baidu.com/p/2460150866")#获取该网址网页详细信息,得到的html就是网页的源代码 
 path = u'图片' 
 mkdir(path) #创建本地文件夹 
 imglist = getAllImg(html) #获取图片的地址列表 
 saveImages(imglist,path) # 保存图片

结果在“图片”文件夹下保存了几十张图片,如截图:

热心网友 时间:2022-04-18 07:30

在python中,一般我们使用urllib的urlopen来打开一个URL并抓取网页内容或者服务器的返回数据 ! 但是在GAE中不能这样做,否则会报“访问被拒绝”字样的错误,主要原因是python中的urlopen使用了socket来连接
声明声明:本网页内容为用户发布,旨在传播知识,不代表本网认同其观点,若有侵权等问题请及时与本网联系,我们将在第一时间删除处理。E-MAIL:11247931@qq.com
企业培训学到了什么 培训感悟简短 有关培训的感悟 通过培训学到什么 培训你学到了什么 领导问培训学到什么怎么回复 Linux系统安装FTP服务器 Linux系统的网络文件共享 建筑的七盏明灯的内容简介 面向对象设计七大原则 简单说 交互设计七大定律 社会保险参保情况是什么意思 什么是限制性股票,限制性股票有哪些优缺点? Python里用tkinter.ttk.Treeview表格组件,怎么让其显示图片? 企业社保情况说明怎么写,格式是什么样的? python的PIL模块,为什么image.show()显示不了图片? 关于限制性股票授予完成的公告 是利好还是利空 个人身份参加社会保险 什么叫限售股解禁?是股市的利好还是利空? 在python Image中可以用show()来显示图片,但是显示以后,下面的代码就... 限售股上市流通对该股是利好还是利空? 个人办理社保情况介绍 怎么用python显示一张图片 参加社保情况怎么填写 限制性股票授予上市是利好吗? 怎么用python显示一张图片? 车载冰箱用LG压缩机好,还是斯科普压缩机好? 冰箱制冷压缩机好还是半导体好吗 车载冰箱与家用冰箱有哪些区别 车载冰箱断电后续冷时间长一些的冰箱该选哪一款? 什么是真正的车载冰箱?是不是压缩机制冷的车载冰箱?比较好的品牌有哪些... 请问用python+Django如何显示图片呢?如何显示一个纯静态的HTMl?急_百 ... 怎么查社会保险缴纳情况 股市中的限制性股票指的是什么?限制性股票该如何理解? 参加社会保险的条件 限售股解禁对本股是利好还是利空,能解释解释吗?那么对股市是利好利 python PIL无法显示图片,也没有报错啊 使用Python爬虫下载图片,得到的图片不显示? 参加各项社会保险和缴纳社会保险费的书面情况 python Label在子函数类中调用为什么不显示图片? 什么叫参保情况 限制性股票激励计划是利好还是利空? python tkinter 无法显示图片 公司法规定的参加社会保险是什么意思是一定要吗 限制性股票解禁上市是利好还是利空? 为什么Python GUI总是不显示图片? 社保状态怎样查询 限售股解禁,上市流通是利好吗? python pil show()函数无法显示图片 依法参加社会保险是指哪些 限制性股票激励计划是利好吗