宅男女生网爬虫
这一系列的爬虫,都是网上不存在,自己找到的感兴趣的网站进行分析爬取。
也当作自己的动手实践吧,GO!
爬取网页:百度搜索“宅男女神”,第一个搜索结果。
背景:
没有编程基础的金融学专业大三学生。
只通过 @静觅 的爬虫课程,学习了爬虫知识
愿景:
在明年下学期结束前能完成一个数据爬虫,分析,可视化,web为一体的项目。
目的:
爬取网站大量图片
对于抓取的图片进行分类保存
参考学习资料:
如何学习Python爬虫[入门篇]?(强烈推荐!十分有用!里面有关python学习线路很适合大众,爬虫的相关学习难度也很适中)
Python3 教程 | 菜鸟教程
快速上手 - Requests 2.18.1 文档
Beautiful Soup 4.2.0 文档
环境配置:
系统环境:WIN8
编译环境:Python3.5
所需库:requests、re、os、pymongo、Beatifulsoup、time
IDE:Pycharm
学前疑惑:
如何找到各个图片的地址接口
如何遍历图片地址,批量保存图片
如何保证爬虫能长期运行不中断
分析网站:(最重要一部分!)
作为一个爬虫新手,分析网站思路的学习是我之前学习过程中花费时间精力最大的部分。这次要爬取的网站,来自于百度搜索,宅男女神的第一个结果网站。首先打开F12,观察界面中各个图集的入口信息,发现href标签中带有信息/g/24699/,而后面这个五位数是决定图集不同的主要因素。而且,越是最新的图片,数字越大。网站是通过时间差异来给图集编号,那么只要我遍历所有编号,就能获得所有图片集地址信息了。通过手动测试发现,按顺序编号,不一定存在图集,所有需要一个函数来筛选出有效的详情图片集网址。
获得详情页地址以后,分析详情页。我们需要抓取,详情页中的标题,图片地址,图片个数。观察图片地址发现, https://t1.onvshen.com:85/gallery/25253/24581/s/030.jpg ,图片的来源格式类似于上面这个链接,同个图集下,除了结尾的三位数030不会改变,其他地方不变。通过获得图片集图片个数,确定有效图片范围,再通过获得图片集地址的固定要素,构造图片集内所有图片的获得链接。
获得图片链接后,只需要保存访问图片链接的response.content,即可实现图片下载保存。通过os库进行文件夹创建,分类保存。再设置格式,保存至MONGODB数据库
具体一分析,是不是发现挺简单的!虽然,在崔大视频里面很多爬虫的网站都带有一些难度,比如动态网站,今日头条,里面的图片链接信息就会比较隐蔽,需要多多发现才能找到。但是,这次的这个网站爬取难度还是非常低的,只需要思路清楚,接下来就是自己实现过程中的各种小问题的解决,多查百度,就能搞定了。
这个爬虫思路还有改善空间,比如说有效图片地址,可以单独设置一个py文件,去运行,保存的地址都是有效地址,就无需自己从10000遍历到30000这么多了。提取以后,遍历有效地址列表就好了。因为爬取量比较大,还可以加上多线程,加快运行速度。
——————————————————————————————————————
代码放在GIT,有需要的自取。
https://github.com/WuXingggg/shiny-spoon/blob/master/spider_meizi.py
如果未安装mongodb数据库,而只想要保存图片到本地,需要把main()中的save_to_mongo()删掉。
成果:(吐槽两句,之前竟然被举报,知乎说违反了法律法规,那还是低调一些吧。)
运行了几十分钟,就抓了5000多张图片。
运行久一些,整个网站所有图片你都能抓下来。
如果需要特别图片类型分类的话,可以写一个爬取网站中指定分类下图集链接,再遍历爬取。
再放上之前的爬虫文章,可以参照学习一下。
利用Requests+正则表达式爬取猫眼电影,学习全过程记录与体会。
零基础爬虫学习全记录2:今日头条指定搜索内容下的所有图集图片保存——图片采集小程序
零基础爬虫学习全记录3:利用selenium爬取淘宝商品的基本信息
你对你自己要求的的学习目标,完成了吗?
如果还未完成,如果你心动的话。
关注我知乎~
我会继续学习和总结,希望能给你带来一些帮助。
与大家共勉,继续努力!欢迎私信交流~
觉得这篇文章对你有帮助的话,帮忙点个赞~
这也是我动力的来源,谢谢各位。
这里有个Q群541809771,由 @路人乙 创建,群里有许多人正在学习的路上,欢迎各位前来讨论,互相监督,互相进步。群里每天都有人活跃哦~
最后,祝各位天天好心情~!
This blog is belong to 无小意
本文链接:https://wuxingggg.github.io/2017/12/22/第一篇/