多线程爬取斗图网站,赶紧上车
Posted Python中文社区
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了多线程爬取斗图网站,赶紧上车相关的知识,希望对你有一定的参考价值。
專 欄
博客:
http://www.jianshu.com/u/261e23a40f71
最近看了Python多线程的相关内容,并且前几天观看了关于斗图网爬取的公开课,课程内容大致是利用Python多线程爬取斗图(多页),并将图片保存到本地。自己写这篇文章总结下这个项目的所涉及的知识,并将实现过程分享给大家。
打开网址:https://www.doutula.com/article/list/?page=1,从网址,我们可以推断出page={页码数字}是为了控制分页。
在每一中,我们可以看到大致有10个套图(套图点击之后是套图里面的具体图片,大致每个套图里有9张表情图),分别放在class为.list-group-item的a标签里,详情如下面的两张图片:
套图位置
每页10个套图a标签
onerror属性
其次:爬取思路(关键)
在第一步分析网站准备工作之后,我们思考下:怎么实现多页爬取?怎么获取每一页所有套图的连接?怎么获取每一套图里面所有表情图片的src?最后怎么实现多线程爬取(加快速度)?为了实现思路清晰,我们将每个模块封装成函数,下面相关代码模块:
引入模块
(1)获取一个网页的源码
获取一页的源码
(2)获取每一页的所有套图的链接,利用套图链接去获取所有套图详情网页源码(有点绕)
获取带有图片的源码
图片所在div
获取onerror内容
这里解释下这段代码:一页中有10个套图,然后每个套图中有9个图片,所以我们在这里获得的items有90个(图片所在的div),然后我们在每一个items中获取onerror里的内容,以便(4)步中的start_save_img()调用
多线程下载图片
(5)调用方法执行
多页爬取
最后:运行代码,效果如下:
运行效果
总结:这个小项目其实用到很多Python爬虫的知识,并且涉及到多线程,爬取速度还算可以。代码都会写,还是希望自己可以掌握这些方法,下次拿到别的网站自己也会有大致思路了。
本文为作者原创作品,未经作者授权同意禁止转载
长按扫描关注Python中文社区,
获取更多技术干货!
Python 中 文 社 区
Python中文开发者的精神家园
合作、投稿请联系微信:
pythonpost
1MEwnaxmMz7BPTYzBdj751DPyHWikNoeFS
点击阅读原文加入全国金融行业Python开发者联盟
以上是关于多线程爬取斗图网站,赶紧上车的主要内容,如果未能解决你的问题,请参考以下文章
斗图斗不过小伙伴?python多线程爬取斗图网表情包,助你成为斗图帝!
用Python多线程实现生产者消费者模式爬取斗图网的表情图片