Python中的CURL PycURL使用例子

时间:2023-05-13 04:14:31 

在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,CURL,PycURL
0
投稿

猜你喜欢

  • ASP技巧 挂QQ的网页源代码ASP/PHP

    2009-01-05 12:36:00
  • Python求解排列中的逆序数个数实例

    2021-07-28 15:17:27
  • opencv 傅里叶变换的实现

    2022-03-21 09:59:51
  • 跟老齐学Python之list和str比较

    2021-02-26 22:36:36
  • Python实现连接dr校园网示例详解

    2022-09-20 05:00:45
  • 38个Asp内置函数介绍

    2008-11-27 16:25:00
  • 如何提升JavaScript的运行速度(DOM篇)[译]

    2009-02-25 12:24:00
  • 浅谈JS原生Ajax,GET和POST

    2024-04-16 08:52:41
  • php session处理的定制

    2023-11-15 18:38:12
  • Python数据存储之 h5py详解

    2023-09-18 00:04:48
  • JS获取数组最大值、最小值及长度的方法

    2024-04-18 09:29:02
  • SqlServer将数据库中的表复制到另一个数据库

    2024-01-22 11:31:33
  • git 拉取远程分支到本地的方法步骤

    2022-08-12 15:09:56
  • 通过源码分析Golang cron的实现原理

    2023-06-15 23:49:24
  • Python运算符重载的简单实例代码

    2021-02-13 11:21:22
  • python创建一个最简单http webserver服务器的方法

    2021-12-15 03:45:40
  • 运行asp.net程序 报错:磁盘空间不足

    2024-01-16 23:48:21
  • Pytorch Tensor基本数学运算详解

    2022-12-09 03:26:50
  • 总结网络IO模型与select模型的Python实例讲解

    2021-10-16 22:09:41
  • Python实现求解一元二次方程的方法示例

    2023-09-15 03:29:41
  • asp之家 网络编程 m.aspxhome.com