import requests
import re
import queue
import threading
import timeHeaders = {'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/68.0.3440.106 Safari/537.36'
}# 获取斗图网图片的url 并放入队列中
def get_detail_url(url,queue):r = requests.get(url,headers=Headers)img_urls = re.findall(r'<img src=.*?data-original="([^"]*)',r.text)img_names = re.findall(r'<img src=.*?alt="([^"]*)',r.text)for i in  zip(img_names,img_urls):queue.put(i)# 从队列中获取url,下载图片def download_img(queue):global Headerswhile True:if queue.empty():breakimg_info = queue.get()r = requests.get(img_info[1],headers = Headers)filename = img_info[0]filename = re.sub(r'[,。?\.!!?]*','',filename)with open("images/{}.jpg".format(filename),'wb') as fp:fp.write(r.content)def main():print(time.ctime())imgs_queue = queue.Queue(1000)  # 创建一个存放img相关信息的队列get_imgurl_thread = [] # 存放获取图片url的线程download_thread = []  # 存放下载图片线程的列表urls = "https://www.doutula.com/photo/list/?page={}"# 创建获取img相关信息的线程for i in range(1,6):t = threading.Thread(target = get_detail_url,args = (urls.format(i),imgs_queue))get_imgurl_thread.append(t)# 启动线程获取img相关信息for i in range(0,5):get_imgurl_thread[i].start()time.sleep(3)# 创建下载的线程放入列表中for i in range(0,5):t = threading.Thread(target=download_img,args=(imgs_queue,))download_thread.append(t)# 启动线程下载for i in range(0,5):download_thread[i].start()# 阻塞不往下走,直至线程下载完成for i in range(0, 5):download_thread[i].join()print(time.ctime())if __name__ == '__main__':main()

单线程下载要40s所有,换成多线程之后,基本10s就能解决。可以说 很牛x。。。。

多线程爬取斗图网表情包相关推荐

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

    最近python基础课讲到了多线程,老师让交个多线程的实例练习.于是来试试多线程爬虫,正好复习一下mooc上自学的嵩天男神的爬虫知识.想法很美好,过程却很心酸,从早上开始写,每次出现各种奇怪问题,到现 ...

  2. 爬虫笔记——多线程爬取斗图网表情包(threading)

    爬虫笔记--多线程爬取斗图网表情包(threading) 网站观察 爬取框架 具体代码 斗图网网址:斗图网,这里以爬取最新套图为例. 网站观察 在网页翻页操作中可以看到网页是非动态加载的(page为页 ...

  3. python3爬虫——多线程爬取斗图网表情包

    本文用多线程生产者,消费者模式爬取斗图网的表情包,并下载保存到本地,get_page()函数负责获取页面的图片的url链接,downlod_img()函数通过图片url下载保存到本地文件夹中,开启多线 ...

  4. Python多线程爬取斗图啦表情包

    斗图啦表情包多线程爬取-撸代码 首先快速的导入我们需要的模块,和其他文章不同,我把相同的表情都放在了同一个文件夹下面,所以需要导入os模块 import asyncio import aiohttp ...

  5. 爬取斗图网表情包之后斗图会输?不存在的

    前言: 本文非常浅显易懂,可以说是零基础也可快速掌握.如有疑问,欢迎留言,笔者会第一时间回复. 一.分析表情包网址 1.进入斗图啦网址,点击**"最新表情"**,再点击第二.第三页 ...

  6. Python项目实战:爬取斗图网表情包图片

    2019独角兽企业重金招聘Python工程师标准>>> 前言 相信大家在和别人聊天的时候都很喜欢斗图吧,斗着斗着斗忘记睡觉了,哈哈,感情得到了升华,下面来介绍一个利用Python在斗 ...

  7. 熊猫人表情包python 代码_用Python爬取斗图网表情包

    一.介绍 用python处理二进制文件的事情做的比较少,虽然之前有写过分析Ajax抓取今日头条街拍美图,但那个爬虫重在分析Ajax,并没有提到文件路径和文件命名,所以就有了这个爬虫 二.流程 流程一般 ...

  8. 手把手教学php表情包,手把手教你爬取斗图啦表情包

    爬取表情包 闲来无事,突然想到表情包好久没有更新了,正好这几天学了爬虫,利用爬虫来更新一波表情包,哈哈哈. 有一个网站,叫做"斗图啦",网址是:https://www.doutul ...

  9. python爬取斗图啦表情包并下载到本地

    迫于无聊,又刚好正在学习python,就来记录一篇关于python爬取图片链接下载本地的入门文章... 主要用到的模块: request 和 BeautifulSoup4 开发之前建议先看一下官方给出 ...

最新文章

  1. 第十二周项目一-实现复数类中的运算符重载(1)
  2. 给线程变量pthread_t *thread动态分配空间
  3. vscode php输出,js程序如何在vscode控制台输出
  4. Linux下C++连MySQL数据库
  5. java转换为字符串_java – 如何从int转换为字符串?
  6. Angular之ngx-permissions的常见使用情况
  7. Java核心类库篇3——util
  8. lambda qt 参数 槽函数_C++中的lambda表达式用法
  9. 计算机与在勘察地质中的应用,地质勘察中计算机信息技术的应用
  10. SVN安装-配置-使用及myeclipse的插件安装(图文)
  11. 从零实现深度学习框架——Softmax回归中的数值稳定
  12. 倒计时 5 天!Apache Flink Meetup · 北京站,1.13 新版本 x 互娱实践分享的开发者盛筵!...
  13. win7计算机开机启动项设置,开机启动项,教您Win7开机启动项怎么设置
  14. 【WPF】资源--《深入浅出WPF》by刘铁锰
  15. Web前端面试:这40个经典Web前端面试题面试者必看!
  16. java poi word 复制_java poi实现word导出(包括word模板的使用、复制表格、复制行、插入图片的使用)...
  17. 第二课: 雷电模拟器的多开和打开
  18. Python爬虫之实例---网易云评论爬取
  19. 图形化开发(九)01-Three.js之案例——王者荣耀demo制作
  20. 2014年度大疆创新笔试题心得

热门文章

  1. C++ cout打印生成两位16进制数
  2. IBM T61 系列笔记本,WinXP 系统下驱动程序的简化安装
  3. java 默认tostring_【java基础】为什么重写toString()方法?
  4. idea恢复默认快捷键
  5. 长江大学计算机科学学院在哪个校区,华北科技学院有几个校区及校区地址
  6. 利用python读取Excel文件的内容,报错:Excel xlsx file; not supported
  7. Android修行手册 - 基础控件Switch初识
  8. 商家怎么做公众号推文?
  9. 2022-2028年全球及中国电脑配件行业发展现状调研及投资前景分析
  10. ElasticSearch原理应用以及京东搜索案例