美文网首页
壁纸爬取

壁纸爬取

作者: 小聪聪快跑呀 | 来源:发表于2020-04-14 20:51 被阅读0次

    由于工作中DIY产品,需要用到大量图片。Python小白,简单记录下网页爬取的一些常规思路(考虑到他人服务器之类的尊重及不公开,只展现整体结构代码,不显示壁纸网址)。

    1.载入所需模块+后续补充
    2.打开壁纸网页
    3.网页结构:一般来说,会有3个层级关系,在一个一级类目(Sports、Music、Movie等)下面,会有对应的二级类目(足球、篮球、射箭等),在三级类目会展现具体的图片缩略图,如果点击图片的话,会获得相关的全景图(放大图/原图,暂不考虑选择分别率)。
    4.保存图片

    由于目前水平有限,只做最简单的三级页面的考虑,暂时爬取二级类目主题集,也会爬取三级类目的图片,并不会将两者串联起来。

    一、导入模块

    需要导入requests请求包,BeatifulSoup网页解析包,os(Operation System)模块用于后面定义下载路径及文件夹命名,uuid只是学习着使用,给文件图片自个命名(还在具体了解中)

    简单代码

    二、浏览网页页面结构 二级页面结构.png

    习惯性下拉到底,简单过下二级页面的布局。F12检查调出网页代码,可以从图中看出,每一个主题图库都有在相应的div标签中,而这些div里面的有相应合集的网址。

    我们再接着看下点进图册里,所显示的内容及布局。 三级页面结构

    我们会发现data-download里有个图片地址,正好也是我们所定位的图片页面的地址,尝试将地址复制粘贴到浏览器中查看下是什么。原来就是原图,那么,这个地址就是我们所需要爬取的图片链接。
    将本页网址代码写入url,后请求链接,解析网页代码。并通过css Ctrl+F精确定位76张图片,得到的标签元素是‘div.wrapper a img'。由于本页图片存在76项,需要依次获取图片地址,需要进行for循环。最后完成下载图片代码,即可get_image函数定义,开始爬取工作。

    三、定义下载路径

    考虑到文件夹不一定存在,所以需要进行判断文件夹是否存在。如果不存在即创建,后打开文件夹并载入图片,自定义命名图片文件名。

    四、有待完善之处

    1.对于文件夹的命名,应该是能够调用图库本身的文件名+数量来命名的;
    2.对于文件的命名,通过主题+序号的方式来编号是需要,而不是通过uuid1来命名文件,不便于后期使用和管理。
    3.针对于单个文件的爬取,后面需要提升到二级页面的爬取,需求是一下子能够完整一个大类的图片获取。速度可以慢些,放在后台自己处理。因为自己按三级页面的爬取方式去爬取二级页面的所有图库会疯掉,极其浪费时间,这块有待加强实现。
    4.侵权与否不便考虑,根据自身情况而定。不公布完整代码的原因也是考虑一部份工作的因素,所以需要保密。下回拿个国内的网站来做分享,也便于我的读者可以一起跟着实践。

    相关文章

      网友评论

          本文标题:壁纸爬取

          本文链接:https://www.haomeiwen.com/subject/pshxvhtx.html