Python爬虫进阶实战三——32行代码爬取小姐姐的图片

爬虫 kingmo888 533℃ 0评论

感谢群友:同学,本文由热心群友 @望 同学原创,在此表示感谢!由于当前帐号未弄好,博主代为发表。


本次爬虫爬取的图片均来自于堆糖网站,友情提示:爬虫以学习为主,未经许可,切勿恶意爬取网站!

本教程环境依赖如下:

python版本为3.7.1,环境为jupyter lab,requests库版本为2.21.0,beautifulSoup库版本为4.7.1。

目标设定:

1、从网页中寻找符合目标需求的图片,对图片进行保存。

2、识别下一页,对后续内容进行爬取

项目分析:

在堆糖网站中,网页页面简单,目标图片十分明确,利于爬虫初学者进行学习。在页面中我们只需要关心目标图片地址与下一页地址不需要考虑太多其它影响因素。

爬虫工作步骤分为以下4步!

1、获取网页中目标图片的地址。

2、对图片进行保存。

3、检测是否存在下一页

4、若下一页为有效地址,则再次执行1、2、3、4过程直到下一页地址为无效地址。

首先在网站中选取一个网页作为网站爬取的首页:

打开开发者工具,点击开发者工具左上角鼠标选项,将鼠标移至目标图片,找到目标图片标签源代码:

 

由此我们可以看到目标图片位于一个img标签中:

<img alt=”杨超越” id=”mbpho-img” class=”js-favorite-blogimg” src=”https://b-ssl.duitang.com/uploads/item/201903/17/20190317134542_irmis.thumb.700_0.jpg” style=”width:588px ;height:392px” data-width=”1024″ data-height=”683″>

图片链接位于标签中的src属性中,在该代码中我使用beautifulsoup中的find方法定位到该标签:imgurl = soup.find(“img”,class_ = “js-favorite-blogimg”),标签为img,class属性为“js-favorite-blogimg”。

之后将该标签赋值给imgurl变量,之后我们需要将标签中的链接提取出来,这时只需要使用代码:imgurl[‘src’]就可以成功获取标签的src属性,也就是图片url。该方法也适用于提取标签的其他属性。

获得图片的url之后开始对图片内容进行保存:

保存部分代码有详细的注释,在此就不再赘述!

完成以上过程之后,我们需要让爬虫继续执行下去,使爬虫自动跳转到下一个页面然后重复以上过程。

根据对网页的分析,当将鼠标移动至图片右半边部分的时候,点击鼠标将会跳转到下一页,所以下一页的地址应该在这里:

 

使用开发者工具,查找下一页的标签:

可以发现网页中下一页的跳转存在于一个a标签中,链接地址也包含在内,但值得注意的是,在这里标签中的链接并不完整,正确的网址信息应该是:https://www.duitang.com/blog/?id=***********,所以在我们使用之前的方法获取到相应信息后还需要对链接进行补充操作,使得链接成为可用的链接,代码如下:

最后一步,获取到链接之后我们使用相同的方法,调用相同的函数重复查询图片地址,保存图片等信息,由此实现爬虫的简单深度爬取。

爬虫结果:

 

如有其他疑问或错误信息,请加入QQ群:599383129。

转载请注明:Python量化投资 » Python爬虫进阶实战三——32行代码爬取小姐姐的图片

喜欢 (2)or分享 (0)
发表我的评论
取消评论
表情

Hi,您需要填写昵称和邮箱!

  • 昵称 (必填)
  • 邮箱 (必填)
  • 网址
(3)个小伙伴在吐槽
  1. 我要大哥哥的
    • 没有。。。。。。
      kingmo8882019-06-01 14:58 回复
    • 改一下初始爬取地址就可以了
      wang2019-06-18 01:25 回复