多线程爬取斗图网站,赶紧上车

Posted Python中文社区

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了多线程爬取斗图网站,赶紧上车相关的知识,希望对你有一定的参考价值。

專 欄


当前浏览器不支持播放音乐或语音,请在微信或其他浏览器中播放 多线程爬取斗图网站,赶紧上车 多线程爬取斗图网站,赶紧上车

致Great,Python中文社区专栏作者

博客:

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

— 人生苦短,我用Python —
1MEwnaxmMz7BPTYzBdj751DPyHWikNoeFS



点击阅读原文加入全国金融行业Python开发者联盟

以上是关于多线程爬取斗图网站,赶紧上车的主要内容,如果未能解决你的问题,请参考以下文章

斗图斗不过小伙伴?python多线程爬取斗图网表情包,助你成为斗图帝!

用Python多线程实现生产者消费者模式爬取斗图网的表情图片

Python-爬取斗图啦网站

Python爬虫入门教程 13-100 斗图啦表情包多线程爬取

不用正则表达式,爬取斗图啦

spider_爬取斗图啦所有表情包(图片保存)