原标题:【Python爬虫】多线程爬取斗图网站(皮皮虾,我们上车)

斗图我不怕

没有斗图库的程序猿是无助,每次在群里斗图都以惨败而告终,为了能让自己在斗图界立于不败之地,特意去网上爬取了斗图包。在这里主要是将实现过程分享给大家。

首先:分析网站,找到图片的src地址

打开网址:https://www.doutula.com/article/list/?page=1,从网址,我们可以推断出page={页码数字}是为了控制分页。

在每一中,我们可以看到大致有10个套图(套图点击之后是套图里面的具体图片,大致每个套图里有9张表情图),分别放在class为.list-group-item的a标签里,详情如下面的两张图片:

套图位置

每页10个套图a标签

点击一个套图连接之后,我们可以看到套图下的所有图片,然后选择一张图片观察它的src地址,后来发现就是img的属性 的内容(至于为什么不是img下的src,大家可以访问地址试下)

属性

img的src地址

其次:爬取思路(关键)

在第一步分析网站准备工作之后,我们思考下:怎么实现多页爬取?怎么获取每一页所有套图的连接?怎么获取每一套图里面所有表情图片的src?最后怎么实现多线程爬取(加快速度)?为了实现思路清晰,我们将每个模块封装成函数,下面相关代码模块:

引入模块

(1)获取一个网页的源码

url地址是指每一页的地址,等会用format函数传递页码,实现多页爬取

获取一页的源码

(2)获取每一页的所有套图的链接,利用套图链接去获取所有套图详情网页源码(有点绕)

获取带有图片的源码

(3)利用xpath获取每一个图片的带有src地址的属性内容

图片所在div

获取内容

这里解释下这段代码:一页中有10个套图,然后每个套图中有9个图片,所以我们在这里获得的items有90个(图片所在的div),然后我们在每一个items中获取里的内容,以便(4)步中的start_save_img()调用

(4)利用正则获取内容里的图片src地址,然后用多线程实现下载图片

多线程下载图片

首先解释下 start_save_img(imgurl_list):参数 imgurl_list是我们(3)中获得的内容(注意:不是图片的src地址,我们还要用注册和切片处理下)。

其中我们在for循环中创建一个线程,调用的方法是save_img,传递的参数是save_img(img_url):接到,用正则和切片处理后获得到每个图片的src地址,最后保存到本地,% img_url.split('/')[-1]这个事命名方式,大家可以仔细观察下每个图片得src地址最一个/后的内容不一样(这里大家也可以用其他方式命名)

(5)调用方法执行

多页(1-7)爬取

最后:运行代码,效果如下:

运行效果

总结:这个小项目其实用到很多Python爬虫的知识,并且涉及到多线程,爬取速度还算可以。代码都会写,还是希望自己可以掌握这些方法,下次拿到别的网站自己也会有大致思路了。

觉得本文有帮助?请分享给更多人

关注「猿助猿」成就顶级开发

技术交流QQ群:517877452返回搜狐,查看更多

责任编辑:

python多线程爬取多个网址_【Python爬虫】多线程爬取斗图网站(皮皮虾,我们上车)...相关推荐

  1. 爬虫爬取链接中文字_使用爬虫技术爬取图片链接并下载图片

    获取图片比获取文字更加复杂,获取文字在网页当中可以直接一次性的读取到文字:获取图片是获取图片的链接地址,然后通过链接地址下载到本地. 第一步:如何获取图片的链接地址 打开图片新闻的地址:https:/ ...

  2. 深夜,我用python爬取了整个斗图网站,不服来斗

    深夜,我用python爬取了整个斗图网站,不服来斗 QQ.微信斗图总是斗不过,索性直接来爬斗图网,我有整个网站的图,不服来斗. 废话不多说,选取的网站为斗图啦,我们先简单来看一下网站的结构 网页信息 ...

  3. java斗图表情_Java爬取斗图网站的所有表情包

    跟朋友聊天总会用到大量表情包,有些人甚至专门收集各种各样的表情包,看看谁能打败谁.今天我就用java爬取了一个斗图网站上的所有表情包,用来充实自己的表情包库.代码逻辑有可能并不完美,哈哈,也花了我几个 ...

  4. Python爬虫系列(三)多线程爬取斗图网站(皮皮虾,我们上车)

    斗图我不怕 最近看了Python多线程的相关内容,并且前几天观看了腾讯课堂潭州学院上面的关于斗图网爬取的公开课,课程内容大致是利用Python多线程爬取斗图(多页),并将图片保存到本地.自己写这篇文章 ...

  5. python爬取网店数据_如何爬虫天猫店铺数据python

    展开全部 本编博客是关于爬取天猫店铺中指定店铺的所有商品基础信息的爬虫,爬虫运行只需要输入相应店32313133353236313431303231363533e78988e69d8331333365 ...

  6. python爬取快手粉丝榜_[Python] 【原创开源】快手爬虫,根据id批量爬取用户的所有图集和视频...

    分享 写在前面代码功能如题,根据快手用户的id来爬取用户所有公开作品,包括图集和视频. 原理:其实就是利用基于chromium内核的浏览器自带的devtools对所有请求进行排查找出包含作品链接的请求 ...

  7. python 爬取直播弹幕视频_调用斗鱼API爬取直播间弹幕信息(用户昵称及弹幕内容)...

    调用斗鱼API爬取直播间弹幕信息(用户昵称及弹幕内容) 查看<斗鱼弹幕服务器第三方接入协议v1.4.1>,了解斗鱼API的使用方法,即如何连接斗鱼弹幕服务器.维持连接及获取弹幕信息 Pyt ...

  8. python表情包斗图_Python爬虫入门教程 13-100 斗图啦表情包多线程爬取

    斗图啦表情包多线程爬取-写在前面 今天在CSDN博客,发现好多人写爬虫都在爬取一个叫做斗图啦的网站,里面很多表情包,然后瞅了瞅,各种实现方式都有,今天我给你实现一个多线程版本的.关键技术点 aioht ...

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

    1.准备爬取斗图la写在前面 今天在CSDN博客,发现好多人写爬虫都在爬取一个叫做斗图啦的网站,里面很多表情包,然后瞅了瞅,各种实现方式都有,今天我给你实现一个多线程版本的.关键技术点 aiohttp ...

最新文章

  1. 乐观锁和悲观锁,可重入锁和不可重入锁(1)
  2. 夏日炎炎,请照顾好你的电脑
  3. [转]你打算如何提升自己?
  4. php后台如何避免用户直接进入方法
  5. c语言斐波那契数列_剑指Offer-10-I.斐波那契数列
  6. css3特效-传送带示例
  7. 小D课堂-SpringBoot 2.x微信支付在线教育网站项目实战_5-7.授权登录获取微信用户个人信息实战...
  8. oracle 游离块修复,求助讨论---上颌单侧后牙游离缺失的修复
  9. How long have you been studying English(第一节)
  10. 打开新材料世界的大门:拓扑电子材料目录问世
  11. java中Map集合、模拟斗地主洗牌发牌、JDK9对集合添加的优化
  12. 求圆周长、圆面积、圆球表面积、圆球体积、圆柱体积(基础作业
  13. 如何批量重命名文件?
  14. matlab水果图片,matlab数字图像处理-----------------水果识别
  15. mysql漏洞如何打补丁_“永恒之黑”针对win10和服务器漏洞分析
  16. 计算机控制技术注册二建,中央空调系统运行培训
  17. matlab机械手ikine函数,matlab中robotics toolbox的函数解说
  18. 手机忘记在出租车上寻回的一次经历
  19. CTF-Web入门-get_post
  20. ICV:2022上半年全球车用CMOS图像传感器出货量超18亿美元

热门文章

  1. Oracle组内排序常见函数
  2. 趣店,切莫做了“714高炮”的帮凶
  3. 快速找出两个字符串中所有相同的字符
  4. 计算机屏幕上的框的英语,电脑打开steam平台弹出一个英文框的解决方法
  5. 公司砍的就剩我俩了,万万没想到...
  6. douphp快速手动添加后台模块
  7. PostgreSQL 和 MySQL 之间的性能差异
  8. linux-优化 PS1
  9. Latex修改超链接、引用的颜色
  10. Angular官网学习笔记