小白学爬虫--5--爬取热映电影信息

----这次图片依然上传不成功,很难受,就当一篇日记了,下次完善,麻蛋

本次爬虫爬取的是电影网站   http://dianying.2345.com/top/

在这之前,介绍一下soup.find()和soup.find_all()的区别

比如


这是该网站的html的soup结构图,非常清晰,我们需要的电影信息在大标签<ul>下,

然后分成一个一个的<li>标签。

首先使用find()方法,比如寻找<li>标签,只得到了html第一个<li>标签。


而且是单纯的标签形式,而不是以列表的形式列出来的。

对于find_all()方法


返回值是一个list,每一个list元素都是一个<li>标签(可以<li>标签里面还嵌套

着一些其他标签,也就是说包括一些子标签,但是每一个list元素是<li>元素

具体分割见‘,’)

比如电影网站,并列的内容往往是由一个大标签,下面嵌套着许多同样的

标签表示的。

我们在fing特定的标签时候,往往输出一些相关属性的信息,我们如果用find_all

会得到一个列表,而不是直接的tag,比较麻烦,所以定位的时候往往使用

find( )方法。

然后在大标签下,就直接使用find_all()来得到一个list包含所以的并列tag信息,

然后进行提取。

本次爬取需要注意的是对图片的提取。


这是某一个img标签,img标签有两个必须的属性,src和alt,图像内容

被嵌套在src里面。同时,Tag['属性']可以提取出tag的属性值,比如


提取出的src属性值是图片的链接,即将这个url链接在网站中输入,可以得到


如果要获取这个URL的图像信息,我们需要用到requests包,先进行requests操作,

获取一个response对象,response对象有text和content属性。具体操作如下:

我们通过requests获取了一个response对象,response.text返回的是这个对象的

unicode类型的数据,而content返回的是二进制的数据(图片是以二进制的形式保存的)

所以text用于获取对象的文本信息,content用于获取对象的图像信息

然后用with open方法以二进制写入本地即可保存。

例如,从某网站上下载一张图片并且保存到本地:


其中wb+是以二进制的形式,并且如果该文件不存在,则创建文件(文件夹必须存在)

顺便记录一下print➕format的IO方法:


完整代码如下


结果如下:



  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值