萌宠图片爬取

萌宠图片定向爬虫实例

应我们的学习群的广大群众的要求,小编在此出一个爬取萌宠图片的小教程。感兴趣的朋友们可以改改代码就能爬取其他类型的图片,比如说美女、风景等。希望大家赏图愉快。

在这里我们选取的是一个国外网站pexels,里面的图片质量很高而且很有美感。虽然是国外网站,但相对百度图片来说好爬一些。大家直接百度pexels官网就可以啦。

01

准备工作

首先,因为我们这次访问的是国外网站,而这个网站的服务器在国外。我用学校的破网访问时真的是慢到怀疑人生。于是想到了改ip的方法。

这个ip我查过了的所以在下图直接给出服务器ip。大家可以到百度经验搜索如何改hosts,然后把hosts文件改成下图:

重点是最后一行。这时访问速度就变得超快了。当然本身访问就很快的就不用去改hosts了。

再然后就是跟往常一样安装我们需要的库: requests库,bs4库(具体安装方法参考

python网络爬虫入门实例:中国大学排名定向爬虫

)

02

案例功能描述

目标:获取pexels网站上的宠物图片

输出:保存到自定义文件中

技术路线:requests-bs4

03

程序设计结构

从https://www.pexels.com/search/pets/获取宠物目录下的图片总列表(如果你想搜美女,可以把pets改为women)

根据图片列表逐个到单个图片页面进行解析并下载

将图片存储到自定义文件夹

04

具体代码

1.导入模块

Python os模块包含普遍的操作系统功能,是系统自带,不需要安装。

2.定义get_html_text(url)函数,通过此函数获得url对应的网页界面:

3.定义get_photo_list(lst, pets_url)函数,通过此函数将空列表lst变成包含所有宠物图片url的列表的lst。这一函数的编写过程中需要查看https://www.pexels.com/search/pets/网页源代码的结构,从而通过beautifulsoup库正确提取我们需要的单个图片链接

html源代码展示:

4.定义get_photos(lst, root)函数。其功能是使用requests库来获取lst中每个图片的url,并将其存放到我们设置的路径中

5.定义主函数,调用主函数。完成此次代码编写。

05

结果展示

宠物图片的结果展示在02节的时候已经给出了,这里给一个风景的结果展示。其实想得到风景的图片也非常简单,大家自己开动脑筋想一想吧~

06

缺点与不足

其实认真运行过代码和查看过网页的人可以发现以下不足:

网页上每类图片是非翻页式的呈现方式,但是其源代码却没有相应的链接,因为网页是随着鼠标的滑动自动由js添加图片的。我目前还没学会这个问题的处理方法。因此爬取数量有限。有其他不足和改进欢迎大家到后台或者我们的微信群交流。

关注我们

扫码加入机器学习小组

(为保证学习群质量请先加管理员经验证后自动加群)

  • 发表于:
  • 原文链接https://kuaibao.qq.com/s/20180721G1IUS200?refer=cp_1026
  • 腾讯「云+社区」是腾讯内容开放平台帐号(企鹅号)传播渠道之一,根据《腾讯内容开放平台服务协议》转载发布内容。

扫码关注云+社区

领取腾讯云代金券