40行动态爬虫代码搞定N张高清无码壁纸下载

浏览: 2464

首先,给大家介绍下一个可以下载高清无码大图片的网站:Unsplash | Free High-Resolution Photos。这个网站每天会定期更新一波高清无码图片,大多质量和美观度都很高,实在是电脑壁纸和图片素材的必备之选。

这几天突然觉得,自己电脑的壁纸非常的low。想换一换壁纸的风格和多样性,所以就想着能不能写一个爬虫把这个网站上的很多很多的高清无码图片给扒下来。下面顺便写一篇文章,记录一下爬取的经过,文章最后附代码。 

首先,查看了一下网页结构,这个网站实现了一个类似于瀑布流的效果,其实就是利用Ajax技术实现的东西。我们使用简单粗暴的逆向工程来爬取这个动态网页。打开网页,先用chrome工具查看一波,如图:

image.png

用过滤器可以看到,这个网站其实每到某一个位置就加载一个network文件,打开看看这个文件是干嘛的:

image.png

打开一个文件,可以看到里面包含着瀑布流下一页的网址和当前页中包含的图片的id,这不正是我们所需要的吗?正当高兴的时候,忽然发现,好像加载文件的网址不太对,长这样的:

仔细一看,还好after后面的编号是一样的,只是中间加了个napi,这就好办了,只需要在构造网址的时候加上napi就可以实现换页了,也就是那个所谓的瀑布流。

下面我们就来看看怎么下载图片,拿主页第一张图看一看,点击下载按钮,网页进行跳转,看了一下网址:

image.png

从下载可以看到,那些编号直接替换掉网址就能搞定下载的事情啦~~

既然又能翻页又能下载图片了,这和手动下载有什么区别哈哈哈~~开始写代码:

还是先说翻页,先搞定第一页网址,当然这里要设置相关的headers,才能顺利访问拿到json文件。拿到文件之后,就用json解析一波,然后提取到next_page中after后面的内容,并且更新page_url,这样一来,下一页图片要访问的网址也就有了。循环范围page_num是整个程序唯一的参数,代表一共要几次翻页,就爬取多少页的图片。

image.png

翻页搞定,就搞一搞下载图片,大致就是提取每一页图片的id进行遍历,构造下载网址然后进行下载保存在本地的pic文件夹中(这个文件夹要提前创建好喔)。这一步相对简单,直接上代码:

image.png

代码就是这么简单,下面看看运行情况:

image.png

可以看见,大概一个网页有10张图片左右,因为每张图片大概都是10M左右大小,所以下载还是需要一定时间的,我代码默认是翻10页的,图片下下来大概100张1Gb,感觉做壁纸算是挺不错的了。

看看成果,我这里运行了一下,没有跑完程序,就下了25张图片:

image.png

image.png

图片太大只能截图了,看上去图片效果还是不错的嘛。

最后一步很简单,在桌面壁纸的个性化中将壁纸的播放形式设置成幻灯片,每隔一段时间就能看到一张新的高质量图片出现在桌面,完美!

本次文章就到这里,只用于学习目的,第一次在知乎写文章,多多包涵。

爬了一两百张图片吧,当壁纸绝对够了,链接:http://pan.baidu.com/s/1nvM6tvF 密码:j78x

欢迎点赞或关注,今后会写更多相关文章。最后附上本次的全部代码地址:PP8818/Unsplash_Crawling,来Star呀~

推荐 3
本文由 施维而已 创作,采用 知识共享署名-相同方式共享 3.0 中国大陆许可协议 进行许可。
转载、引用前需联系作者,并署名作者且注明文章出处。
本站文章版权归原作者及原出处所有 。内容为作者个人观点, 并不代表本站赞同其观点和对其真实性负责。本站是一个个人学习交流的平台,并不用于任何商业目的,如果有任何问题,请及时联系我们,我们将根据著作权人的要求,立即更正或者删除有关内容。本站拥有对此声明的最终解释权。

1 个评论

没看懂,到底是怎么实现翻页的

要回复文章请先登录注册