小学课后服务 Python少儿编程 进阶篇:5-图片爬取 课件_第1页
小学课后服务 Python少儿编程 进阶篇:5-图片爬取 课件_第2页
小学课后服务 Python少儿编程 进阶篇:5-图片爬取 课件_第3页
小学课后服务 Python少儿编程 进阶篇:5-图片爬取 课件_第4页
小学课后服务 Python少儿编程 进阶篇:5-图片爬取 课件_第5页
已阅读5页,还剩16页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

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. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论