python多线程爬取图片
2019独角兽企业重金招聘Python工程师标准>>>
- 创建一个 Queue.Queue() 的实例,然后使用数据对它进行填充。
- 将经过填充数据的实例传递给线程类,后者是通过继承 threading.Thread 的方式创建的。
- 生成守护线程池。
- 每次从队列中取出一个项目,并使用该线程中的数据和 run 方法以执行相应的工作。
- 在完成这项工作之后,使用 queue.task_done() 函数向任务已经完成的队列发送一个信号。
#!/usr/bin/env python #encoding:UTF-8import re import urllib import threading import time import Queuedef getHtml(url):html_page=urllib.urlopen(url).read()return html_page#提取网页中图片的URL def getUrl(html):pattern=r'http://.*?\.jpg!mid' #正则表达式 .*?(匹配http://和\.jpg!mid之间所有字符串)imgre=re.compile(pattern)imglist=re.findall(imgre,html) #re.findall(pattern,string) 在string中寻找所有匹配成功的字符串,以列表形式返回值return imglistclass getImg(threading.Thread):def __init__(self,queue): #进程间通过队列通信,所以每个进程需要用到同一个队列初始化threading.Thread.__init__(self) self.queue=queue#self.setDaemon(True) #守护线程self.start() #启动线程#使用队列实现进程间通信def run(self):global countwhile (True):imgurl = self.queue.get()# print self.getName()#urllib.urlretrieve(url,filname) 将url的内容提取出来,并存入filename中 urllib.urlretrieve(imgurl, '/home/dragonriver/图片/girls/%s.jpg' % count)# print "%s.jpg done"%countcount += 1if self.queue.empty():breakself.queue.task_done() #当使用者线程调用 task_done() 以表示检索了该项目、并完成了所有的工作时,那么未完成的任务的总数就会减少。def main():global counturl="http://girl-atlas.com/a/10130205170100000231" #要爬的网页地址 html=getHtml(url)imglist=getUrl(html)threads=[]count=0queue=Queue.Queue()#将所有任务加入队列for i in range(len(imglist)):queue.put(imglist[i])#多线程爬去图片for i in range(4):thread=getImg(queue)threads.append(thread)#合并进程,当子进程结束时,主进程才可以执行#for thread in threads:# thread.join()#另一种保持主进程阻塞的方法,次方法和前面的self.queue.task_tone()相照应#两个要同时使用#queue.join()if __name__=='__main__':main()print "Down"
转载于:https://my.oschina.net/yulongjiang/blog/182508
python多线程爬取图片相关推荐
- python多线程爬取妹子图
python多线程爬取妹子图 python使用版本: 3.7 目的: 自己选择下载目录,逐个将主题图片保存到选定目录下. 效果: 一秒钟左右下载一张图片,下了七八十组图片暂时没什么问题,不放心的话,可 ...
- python多线程爬取斗图啦数据
python多线程爬取斗图啦网的表情数据 使用到的技术点 requests请求库 re 正则表达式 pyquery解析库,python实现的jquery threading 线程 queue 队列 ' ...
- Python 多线程爬取西刺代理
西刺代理是一个国内IP代理,由于代理倒闭了,所以我就把原来的代码放出来供大家学习吧. 镜像地址:https://www.blib.cn/url/xcdl.html 首先找到所有的tr标签,与class ...
- python多线程爬取ts文件并合成mp4视频
python多线程爬取ts文件并合成mp4视频 声明:仅供技术交流,请勿用于非法用途,如有其它非法用途造成损失,和本博客无关 目录 python多线程爬取ts文件并合成mp4视频 前言 一.分析页面 ...
- 【大学生课程实践】实操:使用Python爬虫爬取图片
实操:使用Python爬虫爬取图片 参考链接: 源码部署 安装源码中的爬虫库 创建 images文件 参考链接: 本博客作为大佬博客学习笔记记录 参考链接:孩子说"你没看过奥特曼" ...
- [python爬虫] 爬取图片无法打开或已损坏的简单探讨
本文主要针对python使用urlretrieve或urlopen下载百度.搜狗.googto(谷歌镜像)等图片时,出现"无法打开图片或已损坏"的问题,作者对它进行简单的探讨.同时 ...
- python多线程爬取世纪佳缘女生资料并简单数据分析
一. 目标 作为一只万年单身狗,一直很好奇女生找对象的时候都在想啥呢,这事也不好意思直接问身边的女生,不然别人还以为你要跟她表白啥的,况且工科出身的自己本来接触的女生就少,即使是挨个问遍,样本量也 ...
- python多线程爬取多个网址_【Python爬虫】多线程爬取斗图网站(皮皮虾,我们上车)...
原标题:[Python爬虫]多线程爬取斗图网站(皮皮虾,我们上车) 斗图我不怕 没有斗图库的程序猿是无助,每次在群里斗图都以惨败而告终,为了能让自己在斗图界立于不败之地,特意去网上爬取了斗图包.在这里 ...
- 斗图斗不过小伙伴?python多线程爬取斗图网表情包,助你成为斗图帝!
最近python基础课讲到了多线程,老师让交个多线程的实例练习.于是来试试多线程爬虫,正好复习一下mooc上自学的嵩天男神的爬虫知识.想法很美好,过程却很心酸,从早上开始写,每次出现各种奇怪问题,到现 ...
最新文章
- 「NLP」 聊聊NLP中的attention机制
- SharePoint 2013安装图文教程
- php sprintf u,PHP sprintf()格式化用法详解
- MySQL explain
- Centos调整时间时区
- phpcms v9中模板标签和联动菜单的使用方法详解
- python出现traceback什么意思_python-异常处理 traceback获取详细异常
- 方舟编译器开源技术沙龙北京站首秀:让开源激活软件开发的潜力
- Django表中的字段
- java 反射 框架_Java——利用反射实现框架类
- 【python】我用python抓取了19个一线城市三年的房价数据,并做了走势分析
- 1.5 极限的存在准则和两个重要极限
- 详解MOVE PROTOCOL的测试版,让健康运动如影随形
- C++Primer 习题 第7章
- 使用云服务器上线网站流程
- 电子脑PHP动画制作,gif动图用什么软件制作
- 用纯javascript和html编写仿淘宝注册页面(带源码)
- java金蝶云单据查询_凭证查询
- 利用Python实现短视频完美伪原创,制作独一无二的视频
- 黑轴和青轴哪个声音大 黑轴和青轴的区别