美文网首页大数据 爬虫Python AI SqlPython小哥哥程序员
自我发掘爬虫实战1:宅男女神网妹子图片批量抓取,分类保存到本地和

自我发掘爬虫实战1:宅男女神网妹子图片批量抓取,分类保存到本地和

作者: 轻松学Python111 | 来源:发表于2019-04-07 21:04 被阅读7次

    代码已经更新,网站增加了一些headers的反爬限制,简单修改后就能继续使用。

    现在的代码,把mongodb保存部分#掉了,直接运行就能保存图片

    如果保存图片报错,建立一个文件夹F:\spider\picture\zhainan2\,建立到最后这个zhainan2文件夹,下载的图片都会保存在这里,需要修改的话,在代码中找到相应部分更改。

    ——————————————————————————————

    这一系列的爬虫,都是网上不存在,自己找到的感兴趣的网站进行分析爬取。

    也当作自己的动手实践吧,GO!

    爬取网页:百度搜索“宅男女神”,第一个搜索结果。

    (收藏数是点赞数的十倍!这你敢信?顺便求个赞吧,哈。)

    目的:

    1. 爬取网站大量图片
    2. 对于抓取的图片进行分类保存

    参考学习资料:

    1. 如何学习Python爬虫[入门篇]?(强烈推荐!十分有用!里面有关python学习线路很适合大众,爬虫的相关学习难度也很适中)
    2. Python3 教程 | 菜鸟教程
    3. 快速上手 - Requests 2.18.1 文档
    4. Beautiful Soup 4.2.0 文档

    环境配置:

    1. 系统环境:WIN8
    2. 编译环境:Python3.5
    3. 所需库:requests、re、os、pymongo、Beatifulsoup、time
    4. IDE:Pycharm

    学前疑惑:

    1. 如何找到各个图片的地址接口
    2. 如何遍历图片地址,批量保存图片
    3. 如何保证爬虫能长期运行不中断

    分析网站:(最重要一部分!)

    作为一个爬虫新手,分析网站思路的学习是我之前学习过程中花费时间精力最大的部分。这次要爬取的网站来自于百度搜索,宅男女神的第一个结果网站。首先打开F12,观察界面中各个图集的入口信息,发现href标签中带有信息/g/24699/,而后面这个五位数是决定图集不同的主要因素。而且,越是最新的图片,数字越大。网站是通过时间差异来给图集编号,那么只要我遍历所有编号,就能获得所有图片集地址信息了。通过手动测试发现,按顺序编号,不一定存在图集,所有需要一个函数来筛选出有效的详情图片集网址。

    获得详情页地址以后,分析详情页。我们需要抓取,详情页中的标题,图片地址,图片个数。观察图片地址发现, https://t1.onvshen.com:85/gallery/25253/24581/s/030.jpg ,图片的来源格式类似于上面这个链接,同个图集下,除了结尾的三位数030不会改变,其他地方不变。通过获得图片集图片个数,确定有效图片范围,再通过获得图片集地址的固定要素,构造图片集内所有图片的获得链接。

    获得图片链接后,只需要保存访问图片链接的response.content,即可实现图片下载保存。通过os库进行文件夹创建,分类保存。再设置格式,保存至MONGODB数据库

    具体一分析,是不是发现挺简单的!虽然,在崔大视频里面很多爬虫的网站都带有一些难度,比如动态网站,今日头条,里面的图片链接信息就会比较隐蔽,需要多多发现才能找到。但是,这次的这个网站爬取难度还是非常低的,只需要思路清楚,接下来就是自己实现过程中的各种小问题的解决,多查百度,就能搞定了。

    这个爬虫思路还有改善空间,比如说有效图片地址,可以单独设置一个py文件,去运行,保存的地址都是有效地址,就无需自己从10000遍历到30000这么多了。提取以后,遍历有效地址列表就好了。因为爬取量比较大,还可以加上多线程,加快运行速度。

    代码已经是纯傻瓜式,只要有requests和beautifulsou这两个库,就能开始自动运行保存。

    如果要自己修改爬取范围,贼修改代码最上方的start和end,自己打开网站找到需要爬取的图集,或者直接遍历从10000-30000之间。

    成果:(吐槽两句,之前竟然被举报,知乎说违反了法律法规,那还是低调一些吧。)

    运行了几十分钟,就抓了5000多张图片。

    运行久一些,整个网站所有图片你都能抓下来。

    image image.gif

    如果需要特别图片类型分类的话,可以写一个爬取网站中指定分类下图集链接,再遍历爬取。

    全部代码: Xshot-0016.png

    你对你自己要求的的学习目标,完成了吗?

    如果还未完成,如果你心动的话。

    关注我~

    我会继续学习和总结,希望能给你带来一些帮助。

    与大家共勉,继续努力!欢迎私信交流~

    觉得这篇文章对你有帮助的话,帮忙点个赞~

    这也是我动力的来源,谢谢各位。

    python学习交流群 984632579 除了分享技术文章之外还有很多福利,加群领取学习资料可以领取包括不限于Python实战演练、PDF电子文档、面试集锦、学习资料等。

    相关文章

      网友评论

        本文标题:自我发掘爬虫实战1:宅男女神网妹子图片批量抓取,分类保存到本地和

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