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中操作日期和时间之gmtime()方法的使用
May 22 Python
Python中的super()方法使用简介
Aug 14 Python
Python中内置数据类型list,tuple,dict,set的区别和用法
Dec 14 Python
python解决方案:WindowsError: [Error 2]
Aug 28 Python
Python实现导出数据生成excel报表的方法示例
Jul 12 Python
浅谈python装饰器探究与参数的领取
Dec 01 Python
python分治法求二维数组局部峰值方法
Apr 03 Python
Django压缩静态文件的实现方法详析
Aug 26 Python
详解Django+Uwsgi+Nginx 实现生产环境部署
Nov 06 Python
python使用mitmproxy抓取浏览器请求的方法
Jul 02 Python
python模块常用用法实例详解
Oct 17 Python
Django框架ORM数据库操作实例详解
Nov 07 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数组 为文章加关键字连接 文章内容自动加链接
2011/12/29 PHP
PHP包含文件函数include、include_once、require、require_once区别总结
2014/04/05 PHP
完美的2个php检测字符串是否是utf-8编码函数分享
2014/07/28 PHP
php实现随机显示图片方法汇总
2015/05/21 PHP
简单三步,搞掂内存泄漏
2007/03/10 Javascript
javascript的事件触发器介绍的实现
2014/06/05 Javascript
javascript 使用for循环时该注意的问题-附问题总结
2015/08/19 Javascript
AngularJS中处理多个promise的方式
2016/02/02 Javascript
jquery按回车键实现表单提交的简单实例
2016/05/25 Javascript
浅析Javascript ES6新增值比较函数Object.is
2016/08/24 Javascript
Webpack+Vue如何导入Jquery和Jquery的第三方插件
2017/02/20 Javascript
Angular限制input框输入金额(是小数的话只保留两位小数点)
2017/07/13 Javascript
js实现延迟加载的几种方法详解
2019/01/19 Javascript
vue cli使用融云实现聊天功能的实例代码
2019/04/19 Javascript
layuiAdmin循环遍历展示商品图片列表的方法
2019/09/16 Javascript
jquery更改元素属性attr()方法操作示例
2020/05/22 jQuery
mapboxgl区划标签避让不遮盖实现的代码详解
2020/07/01 Javascript
Vue props中Object和Array设置默认值操作
2020/07/30 Javascript
解决idea开发遇到javascript动态添加html元素时中文乱码的问题
2020/09/29 Javascript
[36:17]DOTA2上海特级锦标赛 - VGL音乐会全集
2016/03/06 DOTA
Python中的并发编程实例
2014/07/07 Python
python开发利器之ulipad的使用实践
2017/03/16 Python
Python数据结构与算法之列表(链表,linked list)简单实现
2017/10/30 Python
Python RabbitMQ消息队列实现rpc
2018/05/30 Python
Python 实现一行输入多个数字(用空格隔开)
2020/04/29 Python
python中wheel的用法整理
2020/06/15 Python
安纳塔拉酒店度假村及水疗官方网站:Anantara Hotel
2016/08/25 全球购物
日本卡普空电视游戏软件公司官方购物网站:e-CAPCOM
2018/07/17 全球购物
Hotels.com泰国:酒店预订网站
2019/11/20 全球购物
LUISAVIAROMA中国官网:时尚奢侈品牌购物网站
2020/11/01 全球购物
户外活动策划方案
2014/03/12 职场文书
慰问敬老院活动总结
2014/04/26 职场文书
2014年信息中心工作总结
2014/12/17 职场文书
自荐信大全
2019/03/21 职场文书
MySQL中InnoDB存储引擎的锁的基本使用教程
2021/05/26 MySQL
Python数据可视化之用Matplotlib绘制常用图形
2021/06/03 Python