原文地址: http://mp.weixin.qq.com/s/7nDuW23MUDyfFMMpfQN4eA
作者:数据取经团-施维
项目效果
项目背景
最近电脑壁纸存量捉急,老是几张图片看得有点厌烦,就想着能不能一次性下载多一些壁纸,用幻灯片放映方式天天换壁纸,天天好心情。于是乎找了一个免费图片网址PEXELS, 开始撸一波代码,写个小爬虫搞个壁纸库。本文主要会解释一下代码的实现和整个写代码的流程,可供爬虫初学者一起学习。如果想直接拿壁纸,可直接跳到文章最后。
项目流程
要写爬虫,首先我们打开网页,习惯性按一下f12,姿势就很帅。
2.1 翻页
要爬取图片网页,特别是这种瀑布流的网页,一个很重要的点就是怎么自动翻页,所以我直接从这一点入手。一般来说,翻页数据是动态加载,所以,你可以选择network部分,只查看XHR,一边把网页往下滑动看看它都动态加载了一些什么,结果如图:
可以看见,其实格式还是挺统一的嘛!随便点一个看看,会发现像这样的一个网址:
可以看到后面部分都是网页参数,而且是带有时间的参数,哎哟,这可怎么搞。秉着对于不知道的先瞎搞再说的原则,我直接把后面的参数去掉,得到这样的链接,翻页就是page往上加:
一回车,情景是这样的:
我一看就懵逼了,这原来是个js文件,看着好乱,怎么办!!等我定睛一看,里面好像有挺多像.jpeg和.png之类的链接地址,地址里面还有图片的id!!像这样:
美滋滋,这样一来,我们直接有了翻页技能和图片id,还愁图片没法下载?
2.2 图片自定义宽高下载
我先打开了js文件中的图片链接试了一下,发现确实是直接跳到一张图片,不过链接里面参数好多,懒得看了,我就直接先通过正常网页下载流程试了一次,注意保持打开f12:
可以看到,这个网站可以自定义下载图片的宽高,相当良心,根据我的电脑,我选择了1920*1080. 可以看到,在我点击download按钮的时候,f12网页检查器显示加载了好几个文件,注意这个时候要选择All视图选项。很容易看出,最后一个就是下载加载文件,直接点开看详情,可以看到注意一个网址:
直接复制到浏览器回车,就可以直接下载图片了,美滋滋。
代码与下载
因为公众号文章大多是手机阅读,不方便显示代码,所以具体代码和壁纸都放在github上,可以在上面浏览和下载代码,代码有注释,也可获取100张壁纸下载百度云链接。【获取代码及壁纸,只需关注本公众号并回复“壁纸爬虫”】
文中如有错误和叙述不妥之处,望指正。
作者系列文章:爬虫界的一股清流——用安卓做一个朋友圈屏蔽检测器