声明:此开发只用于学习交流,方便朋友们下载观看,禁止用于商业用途和牟利。以下正文:
开发环境
第一次学习网络爬虫,经验和水平还有限。算法还不算通用,很多地方使用了硬编码,程序还不算健壮对异常处理还不够全面,以及网络响应失败没有处理。
使用的环境是:电脑版的树莓派系统,python3,wget、uniq、sort(linux),vbox:share
先上几张截图
下载目录截图,主程序是first_spider.py,图片保存在各自目录下
*目录大小,目前已经运行8*24小时了,大盖还需运行两周
主要思路
首先分析https://uumtu.com.com/zt/页面,获得所有分类的索引,然后把所有索引保存到目录
进行分析。
https://www.uumtu.com/zt/
获得美女专题的图片,共计175个页面:自拍,白领啊什么的,这个可以称之为祖父页面
然后获得分类索引目录之后,获得各索引的所有页面,之后获得所有页面的每个妹子的主页面。
各专题页面的链接,获得关键词,然后尝试访问,直到不能访问为止,这个是父页面
最后获得妹子主页面及各图片保存页面,使用wget程序下载到文件夹,这里楼主使用虚拟机下载到共享文件夹,直接在windows中访问。
每个妹子主页面的链接,共计41677,也就是子页面
对上面的使用linux的uniq、sort命令进行处理,剩下17119个,发现美女图片主要有6个目录,清纯、丝袜、车模、日韩、性感、自拍,其他的均索引到这些图片,分析后台应该是直接使用文件夹或用图片链接从数据库提取图片
主要算法
担心大家直接下载使用,所以这里只上传主要算法
1.使用到的库
requests、beautifulsoup、os、time
分别用来获得网页,分析网页,把链接保存到内存、读取到内存,统计程序运行时间。
2.关键程序
A:爬虫通用框架
B:获得专题页面的所有链接
对专题页面进行分析,获得特征美女下的所有链接,使用这个函数处理字符串,获得链接,并通过os写入文件
C:获得所有父页面的链接
对所有祖父页面进行访问,并看祖父页面是否有下一页,如果有通过index++的方式获得下一页面,并测试,指导找不到下一页面或访问不同,然后把list写入文件,这个应该加入异常处理。
C:获得所有美女图片链接
所有有title或taglisttitle的链接为图片首页链接
flag用于判断是手机页面还是电脑页面,对父页面的所有链接进行分析,如果找到titel或taglisthtitle的,则获得链接,否则不处理,然后通过测试,看每个美女图片共有多少个页面,也写入文件
D:获得所有美女的图片链接
从概览信息获得美女图片title等信息,然后对该美女图片的所有页面进行查询,看是否有title信息,有就获得链接,保存到list
E:保存到文件,即主程序,这里没有添加另外一个函数
从文件读取所有美女图片链接,然后从制定页面开始访问,首先通过美女图片橄榄信息获得文件夹名称,类别+美女图片标题,如"qingchun/清纯少女的居家图片",然后通过美女图片页面链接获得美女图片链接,使用os模块调用wget函数下载图片
好了,基本思路就是这样,希望对大家有用,我去看图了,羞羞!!