Python多线程获取网页数据速度过慢如何调整,python多线程,Python代码如下#
Python多线程获取网页数据速度过慢如何调整,python多线程,Python代码如下#
Python代码如下
# -*- coding: utf-8 -*-import urllib2,urllibimport threading #多线程模块import time, randomimport sysfrom bs4 import *class MyThread(threading.Thread): def __init__( self, url ): threading.Thread.__init__( self ) self.url = url '''vertual function in Thread''' def run( self ): try: urllib.urlcleanup() #清除使用urlopen后产生的缓存文件 req = urllib2.Request(self.url) response = urllib2.urlopen(req,None) #3秒超时 html = response.read() soup = BeautifulSoup(html) print str(self.url) + ">>>" + str(soup.title) + "\n" except: print "run函数出错..."#main函数入口if __name__ == "__main__": tasks = [] #创建线程对象 for i in range(0,100): task = MyThread( "http://www.baidu.com" ) tasks.append( task ) # 启动所有的线程 for t in tasks: t.start() # 主线程中等待所有子线程退出 for t in tasks: t.join()
获取百度首页标题100次所花费的时间:
注:刚接触Python多线程机制,不知道使用上有没有错误,以上代码该怎样修改才能进一步提升速度呢?
首先python的线程由于GIL的限制 效率不会特别高,为了效率可以考虑多进程或线程进程混合。其次 100个线程有点多,开销大也会造成效率低,可以采用线程池来执行批量任务。
编橙之家文章,
相关内容
- web.py增加、删除、修改、查询怎么做,web.py查询,其实我
- Python import相互导入有顺序会影响执行吗?,pythonimport,
- 求推荐Python多线程爬虫重复内容处理思路,python多线程
- Django控制不同类型用户访问权限怎么实现,django权限
- 请问Python带参数装饰器,如何调用该函数中参数部分,
- python模拟http请求,提示开启javascript支持的问题,python
- Python事例变量引用失败求原因,python事例变量引用,&g
- 问一个关于部署和管理的问题,用git管理django项目,gi
- Py文件封装报错:No such file or directory原因,,不是MSVCP90
- 看到内存泄露的文章,谁有python内存泄露的实例分享吗
评论关闭