Python中的CURL PycURL使用例子


Posted in Python onJune 01, 2014

在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爬虫之打包生成exe文件
Nov 06 Python
Python中的fileinput模块的简单实用示例
Jul 09 Python
python 生成器生成杨辉三角的方法(必看)
Apr 10 Python
python发送邮件实例分享
Jul 28 Python
python中如何正确使用正则表达式的详细模式(Verbose mode expression)
Nov 08 Python
python数字图像处理之高级滤波代码详解
Nov 23 Python
python 给DataFrame增加index行名和columns列名的实现方法
Jun 08 Python
Python获取基金网站网页内容、使用BeautifulSoup库分析html操作示例
Jun 04 Python
如何在Cloud Studio上执行Python代码?
Aug 09 Python
利用django创建一个简易的博客网站的示例
Sep 29 Python
详解python对象之间的交互
Sep 29 Python
运行Python编写的程序方法实例
Oct 21 Python
Python实现多线程下载文件的代码实例
Jun 01 #Python
python使用在线API查询IP对应的地理位置信息实例
Jun 01 #Python
pip 错误unused-command-line-argument-hard-error-in-future解决办法
Jun 01 #Python
2款Python内存检测工具介绍和使用方法
Jun 01 #Python
使用Python的Supervisor进行进程监控以及自动启动
May 29 #Python
python应用程序在windows下不出现cmd窗口的办法
May 29 #Python
python正则表达式re模块详细介绍
May 29 #Python
You might like
PHP strtr() 函数使用说明
2008/11/21 PHP
基于php socket(fsockopen)的应用实例分析
2013/06/02 PHP
PHP和JavaScrip分别获取关联数组的键值示例代码
2013/09/16 PHP
PHP导出带样式的Excel示例代码
2016/08/28 PHP
PHP将身份证正反面两张照片合成一张图片的代码
2017/04/08 PHP
如何优雅的使用 laravel 的 validator验证方法
2018/11/11 PHP
PHP设计模式之单例模式定义与用法分析
2019/03/26 PHP
PHP反射学习入门示例
2019/06/14 PHP
Mootools 1.2教程 排序类和方法简介
2009/09/15 Javascript
两个Javascript小tip资料
2010/11/23 Javascript
映彩衣的js随笔(js图片切换效果)
2011/07/31 Javascript
有关javascript的性能优化 (repaint和reflow)
2013/04/12 Javascript
javascript中的=等号个数问题两个跟三个有什么区别
2013/10/23 Javascript
JavaScript保留两位小数的2个自定义函数
2014/05/05 Javascript
JS使用正则表达式除去字符串中重复字符的方法
2015/11/05 Javascript
浅谈React 属性和状态的一些总结
2016/11/21 Javascript
jQuery EasyUi 验证功能实例解析
2017/01/06 Javascript
js Canvas绘制圆形时钟教程
2017/02/06 Javascript
jQuery自动或手动图片切换效果
2017/10/11 jQuery
koa2 数据api中间件设计模型的实现方法
2020/07/13 Javascript
详解JavaScript中new操作符的解析和实现
2020/09/04 Javascript
编写Python脚本来获取Google搜索结果的示例
2015/05/04 Python
Python使用reportlab将目录下所有的文本文件打印成pdf的方法
2015/05/20 Python
python 多进程和协程配合使用写入数据
2020/10/30 Python
Django多数据库联用实现方法解析
2020/11/12 Python
简历自我评价怎么写好呢?
2014/01/04 职场文书
民族团结先进个人材料
2014/02/05 职场文书
竞赛口号大全
2014/06/16 职场文书
应届生求职自荐信
2014/07/04 职场文书
建议书格式
2015/02/04 职场文书
入党介绍人意见怎么写
2015/06/03 职场文书
庆元旦主持词
2015/07/06 职场文书
2015暑期社会实践通讯稿
2015/07/18 职场文书
三八妇女节致辞
2015/07/31 职场文书
2016七夕情人节广告语
2016/01/28 职场文书
浅谈MySQL 亿级数据分页的优化
2021/06/15 MySQL