httplib代码:

        urlParseResult = urlparse(url)
host = urlParseResult.hostname
path = urlParseResult.path
conn = httplib.HTTPConnection(host)
base64string = base64.encodestring('%s:%s' % (username, password)).replace('\n', '')
conn.putheader("Authorization", "Basic %s" % base64string)
conn.endheaders() conn.request("GET", path) try:
with open(localLogFile, "wb") as code1:
with contextlib.closing(conn) as conn:
response = conn.getresponse()
while True:
data = response.read(defaultBlock)
if not len(data):
print str(self.logDate)+"-"+localLogFileName+"获取成功!"
return
else:
code1.write(data)
except urllib2.HTTPError as httpError:
if httpError.code == httplib.NOT_FOUND:
print url+"is not found,404"
else:
raise

urllib代码:

        defaultBlock = 2048
base64string = base64.encodestring('%s:%s' % (username, password)).replace('\n', '')
conn = urllib2.Request(url)
conn.add_header("Authorization", "Basic %s" % base64string)
try:
with open(localLogFile, "wb") as code1:
with contextlib.closing(urllib2.urlopen(conn)) as result:
while True:
data = result.read(defaultBlock)
if not len(data):
print str(self.logDate)+"-"+localLogFileName+"获取成功!"
return
else:
code1.write(data)
except urllib2.HTTPError as httpError:
if httpError.code == httplib.NOT_FOUND:
print url+"is not found,404"
else:
raise

执行效率代码:

from timeit import Timer
t1 = Timer('doGetLogByConfig()', 'from __main__ import doGetLogByConfig')
print t1.timeit(1)

结果:

httplib时间:
45.4764687239
urllib时间:
64.3462849881

python httplib和urllib的性能比较的更多相关文章

  1. python的httplib、urllib和urllib2的区别及用

    慢慢的把它们总结一下,总结就是最好的学习方法 宗述 首先来看一下他们的区别 urllib和urllib2 urllib 和urllib2都是接受URL请求的相关模块,但是urllib2可以接受一个Re ...

  2. Python核心模块——urllib模块

    现在Python基本入门了,现在开始要进军如何写爬虫了! 先把最基本的urllib模块弄懂吧. urllib模块中的方法 1.urllib.urlopen(url[,data[,proxies]]) ...

  3. [转]Python核心模块——urllib模块

    现在Python基本入门了,现在开始要进军如何写爬虫了! 先把最基本的urllib模块弄懂吧. urllib模块中的方法 1.urllib.urlopen(url[,data[,proxies]]) ...

  4. Python调用C模块以及性能分析

    一.c,ctypes和python的数据类型的对应关系 ctypes type ctype Python type c_char char 1-character string c_wchar wch ...

  5. [python]用profile协助程序性能优化

    转自:http://blog.csdn.net/gzlaiyonghao/article/details/1483728 本文最初发表于恋花蝶的博客http://blog.csdn.net/lanph ...

  6. Python爬虫之urllib模块2

    Python爬虫之urllib模块2 本文来自网友投稿 作者:PG-55,一个待毕业待就业的二流大学生. 看了一下上一节的反馈,有些同学认为这个没什么意义,也有的同学觉得太简单,关于Beautiful ...

  7. Python爬虫之urllib模块1

    Python爬虫之urllib模块1 本文来自网友投稿.作者PG,一个待毕业待就业二流大学生.玄魂工作室未对该文章内容做任何改变. 因为本人一直对推理悬疑比较感兴趣,所以这次爬取的网站也是平时看一些悬 ...

  8. Python爬虫之Urllib库的基本使用

    # get请求 import urllib.request response = urllib.request.urlopen("http://www.baidu.com") pr ...

  9. python学习笔记——urllib库中的parse

    1 urllib.parse urllib 库中包含有如下内容 Package contents error parse request response robotparser 其中urllib.p ...

随机推荐

  1. 【bzoj1507】 JSOI2008—Blue Mary的旅行

    http://www.lydsy.com/JudgeOnline/problem.php?id=1570 (题目链接) 题意 给出$m$个航班,每天只能做一次飞机,有$T$人从起点到终点,问最晚到达的 ...

  2. 2018 ACM 网络选拔赛 南京赛区

    A. An Olympian Math Problem #include <cstdio> #include <cstdlib> #include <cmath> ...

  3. 织梦dedecms自定义搜索可以按照附加表字段进行搜索

    因为需要在网上搜索了一下找到此修改方法: 首先 是新建模型:商标信息 模型:附加表为dede_shangbiao ,附加字段先添加了2个,sbID(商标ID)和chuangyi(创意说明)然后 打开需 ...

  4. CalISBN.java

    /****************************************************************************** * Compilation: javac ...

  5. 把pandas dataframe转为list方法

    把pandas dataframe转为list方法 先用numpy的 array() 转为ndarray类型,再用tolist()函数转为list

  6. vue2.0 之列表渲染-v-for

    v-for 数组渲染 App.vue代码 <template> <div> <ul> <li v-for="item in list"&g ...

  7. python---web框架本质(1)

    总的来说php相对较为简单,但是内部封装太多,不利于对编程的更本质探索. 但是对于生产开发确实是一门不错的语言.python对于socket以及web框架的理解更加透彻 # coding:utf8 # ...

  8. C#多线程和异步(一)——基本概念和使用方法

    一.多线程相关的基本概念 进程(Process):是系统中的一个基本概念. 一个正在运行的应用程序在操作系统中被视为一个进程,包含着一个运行程序所需要的资源,进程可以包括一个或多个线程 .进程之间是相 ...

  9. 在windows中停止mysql提示:'服务正在启动或停止中,请稍候片刻后再试一次'

    发现mysql的windows服务异常,准备卸载并重新注册服务,输入: mysqld --remove MySQL 提示: 发现卸载不掉这个服务,于是找到MySQL服务的pid sc queryex ...

  10. 两年.net码农总结

    一直都是在博客园看文章,几乎每个两三天都会来,不管是看技术分享还是看经验总结,我觉得这真是个好地方. 工作两年,24.5岁,目前达到8.5K(即10W)的.net web. 文章水平不好,各位见谅了, ...