




版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
Loremipsumdolorsitamet,consectetueradipiscingelit.Aeneancommodoligulaegetdolor.Cumsociisnatoquepenatibusetmagnisdisparturientmontes,nasceturridiculusmus.少儿编程课王者荣耀图片爬虫本节课,我们来爬取网站上面的图片并保存到电脑中:图片爬取及保存生活中保存网络图片的方法:1首先找到要保存的图片;2鼠标右键保存图片到指定目录:少量的图片还可以这样操作,那如果是一整页的图片呢?很多页面的图片呢?1每个图片的网络地址就像一根根蛛丝,图片就是蛛丝上面的小水珠。编码实现编程实现保存网络图片的思路:1首先找到要保存的图片,获取图片地址2保存图片到本地目录,并重命名为图片原名称编程实现保存本地图片:1编码保存图片到指定目录:fromtkinterimport*
fromPILimportImage
fromPILimportImageTk
root=Tk()
root.title('标签上图片的展示')
img=Image.open('C:/Users/Administrator/Desktop/momeimei.jpg')
img=ImageTk.PhotoImage(img)
label=Label(root,text="",image=img,width=500,height=500)
label.grid(row=0,column=0)在之前生成二维码的课程中,我们使用Image和ImageTkinter来操作图片吗?#将本地的图片文件保存到其他的目录中img.save('C:/Users/Administrator/Desktop/momeimei-1.jpg')编程实现保存一个网络图片:1拿到图片网络地址:/wallpaper/2018-11-13/5bea31214169a_270_185.jpg使用Requests获取网络图片import
requests
imageUrl='/wallpaper/2018-11-09/5be4ef509f62a_270_185.jpg'
imgRes=requests.get(imageUrl)2图片属于二进制文件,Requests会自动为你解码
gzip
和
deflate
传输编码的响应数据。例如,以请求返回的二进制数据创建一张图片,你可以使用如下代码:import
requestsfrom
io
import
BytesIO
img=Image.open(BytesIO(imgRes.content))3使用Image将图片保存到本地目录#将本地的图片文件保存到其他的目录中img.save('C:/Users/Administrator/Desktop/momeimei-1.jpg')练习Exercises密封线内不准答题现在知道网络图片地址,请使用Image的save()方法将它保存到本地目录下。使用BeautifulSoup拿到图片的地址:1现在知道了网页的地址,每个图片的地址包含在网页中,如何拿到图片的下载地址?BeautifulSoup安装网络数据挖掘指的是从网站中获取数据的过程,数据挖掘技术可以让我们从网站世界中收集大量有价值的数据。
BeautifulSoup是一个Python库,可以从HTML或XML文件中获取数据,利用它你可以做很多事情,比如你可以持续解析某个商品的最新价格,以便跟踪价格的波动情况。1BeautifulSoup简介2BeautifulSoup安装#使用pip安装pipinstallbeautifulsoup4#检验是否安装成功frombs4importBeautifulSoup3BeautifulSoup支持Python标准库中的HTML解析器,还支持一些第三方的解析器,其中一个是lxml#lxml是功能最丰富且易于使用的库,用于处理Python语言中的XML和HTMLpipinstalllxml#html5lib的解析方式与浏览器相同pipinstallhtml5libBeautifulSoup使用4创建BeautifulSoup对象from
bs4
import
BeautifulSoup
html_doc="""
<html><head><title>TheDormouse'sstory</title></head>
<pclass="title"><b>TheDormouse'sstory</b></p>
<pclass="story">Onceuponatimetherewerethreelittlesisters;andtheirnameswere
<ahref="/elsie"class="sister"id="link1">Elsie</a>,
<ahref="/lacie"class="sister"id="link2">Lacie</a>and
<ahref="/tillie"class="sister"id="link3">Tillie</a>;
andtheylivedatthebottomofawell.</p>
<pclass="story">...</p>
"""
soup=BeautifulSoup(html_doc,features='lxml')
print(soup)使用BeautifulSoup解析这段代码,能够得到一个
BeautifulSoup
的对象,并能按照标准的缩进格式的结构输出BeautifulSoup使用5使用find_all()找到指定标签soup=BeautifulSoup(html_doc,features='lxml')
print(soup.fidn_all(‘a’))[<aclass="sister"href="/elsie"id="link1">Elsie</a>,<aclass="sister"href="/lacie"id="link2">Lacie</a>,<aclass="sister"href="/tillie"id="link3">Tillie</a>]输出结果如下:6使用网页内容创建BeautifulSoup对象importrequestshtmlUrl='/zt/wangzherongyao_1.html'
soup=BeautifulSoup(requests.get(htmlUrl).text,features='lxml')练习Exercises密封线内不准答题现在知道网页地址,请使用BeautifulSoup的find_all()方法找到所有图片地址并打印出来。图片地址的筛选7使用find_all()找到<img>标签htmlUrl='/zt/wangzherongyao_1.html'
soup=BeautifulSoup(requests.get(htmlUrl).text,features='lxml')
forurlinsoup.find_all('img'):
print(url)<imgalt="王者荣耀"src="/wallpaper/0/57cfbba451806.jpg"/><imgdata-original="/wallpaper/2018-11-13/5bea31214169a_270_185.jpg"src="/home/images/placeholder.jpg"/>...<imgsrc="/tj/2017-06-05/593514651b449.jpg"/>...<imgsrc="/wallpaper/a/515952932a714_270_185.jpg"/>...<imgalt="经典热门游戏桌面壁纸大全"data-original="/tj/2018-10-16/5bc5aaf182361.jpg"src="/home/images/placeholder.jpg"title="经典热门游戏桌面壁纸大全"/><imgsrc="/mobile/images/logo.png"/>输出结果如下:图片地址的筛选8使用has_attr()过滤标签#如果有data-original属性并且没有'alt属性if(child.has_attr('data-original')andnotchild.has_attr('alt')):<imgdata-original="/wallpaper/2018-11-13/5bea31214169a_270_185.jpg"src="/home/images/placeholder.jpg"/>输出结果如下:9获取标签数据#获取data-original属性的数据child.['data-original’]/wallpaper/2018-11-13/5bea31214169a_270_185.jpg输出结果如下:完成代码如下:import
requests
from
PIL
import
Image
from
io
import
BytesIO
from
bs4
import
BeautifulSoup
imgUrlHead=‘/zt/wangzherongyao_'
imgUrlTail=‘.html'
res=requests.get(url)
soup=BeautifulSoup(res.text,features='lxml')
def
saveImage(url):
names=url.split('/')
imgName=names[len(names)-1]
imgRes=requests.get(url)
img=Image.open(BytesIO(imgRes.content))
img.save(downloadPath+imgName)
for
iin
range(1,6):
tempUrl='%s%s%s'%(imgUrlHead,i,imgUrlTail)
f
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 浙江万里学院《美学与医学美学》2023-2024学年第二学期期末试卷
- 平凉市灵台县2024-2025学年六年级下学期调研数学试卷含解析
- 武汉纺织大学外经贸学院《广播电视新闻采编》2023-2024学年第二学期期末试卷
- 广州商学院《口腔工艺管理》2023-2024学年第二学期期末试卷
- 云南财经大学《新技术在城市规划中的应用》2023-2024学年第二学期期末试卷
- 镇江市高等专科学校《影视虚拟空间技术》2023-2024学年第一学期期末试卷
- 浙江工业大学《精神卫生保健》2023-2024学年第一学期期末试卷
- 债券相关知识培训
- 工艺流程培训
- 辽宁省大连市瓦房店市2024-2025学年七年级下学期期中地理试题(含答案)
- 2025年湖北省初中学业水平考试数学模拟卷(二)(原卷版+解析版)
- 2025年华能新能源股份有限公司广东分公司应届高校毕业生招聘笔试参考题库附带答案详解
- 2025年新疆克州中考英语一模试卷
- 2024年新疆伊犁州直检察机关招聘聘用制书记员笔试真题
- 口腔四手操作培训
- 医院检验科简介
- 成人手术后疼痛评估与护理团体标准
- 连锁药店年度规划
- 2024年10月自考07729仓储技术与库存理论试题及答案
- 血液透析头痛的应急预案
- 肝硬化肝性脑病指南
评论
0/150
提交评论