Python中的CURL PycURL使用例子

 更新时间:2014年06月01日 22:43:59   作者:  
这篇文章主要介绍了Python中的CURL PycURL使用例子,需要的朋友可以参考下
在Linux上有个常用的命令 curl(非常好用),支持curl的就是大名鼎鼎的libcurl库;libcurl是功能强大的,而且是非常高效的函数库。libcurl除了提供本身的C API之外,还有多达40种编程语言的Binding,这里介绍的PycURL就是libcurl的Python binding。
在Python中对网页进行GET/POST等请求,当需要考虑高性能的时候,libcurl是非常不错的选择,一般来说会比liburl、liburl2快不少,可能也会比Requests的效率更高。特别是使用PycURL的多并发请求时,更是效率很高的。个人感觉,其唯一的缺点是,由于是直接调用的是libcurl C库,PycURL的函数接口之类的还和C中的东西很像,可能不是那么的Pythonic,写代码的学习曲线稍微比liburl高一点儿。
还是看个简单的例子吧:
复制代码 代码如下:

#! /usr/bin/env python
# -*- coding: utf-8 -*-

'''
Created on Dec 15, 2013

@author: Jay
'''

import sys
import pycurl
import time

class Test:
    def __init__(self):
        self.contents = ''

    def body_callback(self, buf):
        self.contents = self.contents + buf

sys.stderr.write("Testing %s\n" % pycurl.version)

start_time = time.time()

url = 'http://www.dianping.com/shanghai'
t = Test()
c = pycurl.Curl()
c.setopt(c.URL, url)
c.setopt(c.WRITEFUNCTION, t.body_callback)
c.perform()
end_time = time.time()
duration = end_time - start_time
print c.getinfo(pycurl.HTTP_CODE), c.getinfo(pycurl.EFFECTIVE_URL)
c.close()

print 'pycurl takes %s seconds to get %s ' % (duration, url)

print 'lenth of the content is %d' % len(t.contents)
#print(t.contents)

相关文章

  • Python正则表达式的另类解答

    Python正则表达式的另类解答

    这篇文章主要为大家详细介绍了Python正则表达式,文中示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下,希望能够给你带来帮助
    2022-02-02
  • Python中切片的详细操作篇

    Python中切片的详细操作篇

    在Python中切片(slice)是对序列型对象(如list, string, tuple)的一种高级索引方法,下面这篇文章主要给大家介绍了关于Python中切片操作的相关资料,文中通过实例代码介绍的非常详细,需要的朋友可以参考下
    2022-08-08
  • Python3实现打格点算法的GPU加速实例详解

    Python3实现打格点算法的GPU加速实例详解

    这篇文章主要给大家介绍了关于Python3实现打格点算法的GPU加速的相关资料,文中通过示例代码介绍的非常详细,对大家学习或者使用python具有一定的参考学习价值,需要的朋友可以参考下
    2021-09-09
  • 基于PyQt5实现状态栏(statusBar)显示和隐藏功能

    基于PyQt5实现状态栏(statusBar)显示和隐藏功能

    这篇文章主要为大家详细介绍了如何利用PyQt5实现状态栏显示和隐藏功能,文中示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下,希望能够给你带来帮助
    2022-08-08
  • 详解在Python的Django框架中创建模板库的方法

    详解在Python的Django框架中创建模板库的方法

    这篇文章主要介绍了在Python的Django框架中创建模板库的方法,模版库通常用来管理单独的Django中的应用,需要的朋友可以参考下
    2015-07-07
  • 一文学会使用OpenCV构建文档扫描仪

    一文学会使用OpenCV构建文档扫描仪

    本文将使用 OpenCV,创建一个简单的文档扫描仪,就像常用的摄像头扫描仪应用程序一样,这篇文章主要给大家介绍了关于使用OpenCV构建文档扫描仪的相关资料,需要的朋友可以参考下
    2022-11-11
  • tensorflow 大于某个值为1,小于为0的实例

    tensorflow 大于某个值为1,小于为0的实例

    这篇文章主要介绍了tensorflow 大于某个值为1,小于为0的实例,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
    2020-06-06
  • python3 dict ndarray 存成json,并保留原数据精度的实例

    python3 dict ndarray 存成json,并保留原数据精度的实例

    今天小编就为大家分享一篇python3 dict ndarray 存成json,并保留原数据精度的实例,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
    2019-12-12
  • 详解python os.walk()方法的使用

    详解python os.walk()方法的使用

    今天给大家带来的是关于Python的相关知识,文章围绕python os.walk()方法的使用展开,文中有非常详细的介绍及代码示例,需要的朋友可以参考下
    2021-06-06
  • 基于Python实现超级玛丽游戏的示例代码

    基于Python实现超级玛丽游戏的示例代码

    这篇文章主要介绍了利用python实现超级玛丽游戏的示例代码,帮助大家更好的理解和使用python开发游戏,感兴趣的朋友可以跟随小编一起学习一下
    2022-05-05

最新评论