Python的pycurl包用法简介


Posted in Python onNovember 13, 2015

pycurl是功能强大的python的url包,是用c语言写的,速度很快,比urllib和httplib都快

调用方法:

import pycurl

c = pycurl.Curl()
c.setopt(pycurl.URL, 'http://api.minicloud.com.cn/statuses/public_timeline.xml')
import StringIO  #这个用到里面的write函数
b = StringIO.StringIO()
c.setopt(pycurl.WRITEFUNCTION, b.write) #把StringIO的写函数注册到pycurl的WRITEFUNCTION中,即pycurl所有获取的内容都写入到StringIO中,如果没有这一句,pycurl就会把所有的内容在默认的输出器中输出
c.perform()
print b.getvalue()

 

这里有一个小例子,用来获取微博上流行的短地址对应的真实地址的

import StringIO
import pycurl

c = pycurl.Curl()
str = StringIO.StringIO()
c.setopt(pycurl.URL, "http://t.cn/aKln8T")
c.setopt(pycurl.WRITEFUNCTION, str.write)
c.setopt(pycurl.FOLLOWLOCATION, 1)

c.perform()
print c.getinfo(pycurl.EFFECTIVE_URL)

 

可见pycurl是十分强大和简洁的,只是要熟悉它的很多属性,下面来看一些常用的:

pycurl.Curl() #创建一个pycurl对象的方法
pycurl.Curl(pycurl.URL, http://www.google.com.hk) #设置要访问的URL
pycurl.Curl().setopt(pycurl.MAXREDIRS, 5) #设置最大重定向次数
pycurl.Curl().setopt(pycurl.CONNECTTIMEOUT, 60)
pycurl.Curl().setopt(pycurl.TIMEOUT, 300) #连接超时设置
pycurl.Curl().setopt(pycurl.USERAGENT, "Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1; SV1; .NET CLR 1.1.4322)") #模拟浏览器
pycurl.Curl().perform() #服务器端返回的信息
pycurl.Curl().getinfo(pycurl.HTTP_CODE) #查看HTTP的状态 类似urllib中status属性
pycurl.NAMELOOKUP_TIME 域名解析时间
pycurl.CONNECT_TIME 远程服务器连接时间
pycurl.PRETRANSFER_TIME 连接上后到开始传输时的时间
pycurl.STARTTRANSFER_TIME 接收到第一个字节的时间
pycurl.TOTAL_TIME 上一请求总的时间
pycurl.REDIRECT_TIME 如果存在转向的话,花费的时间
pycurl.EFFECTIVE_URL
pycurl.HTTP_CODE HTTP 响应代码
pycurl.REDIRECT_COUNT 重定向的次数
pycurl.SIZE_UPLOAD 上传的数据大小
pycurl.SIZE_DOWNLOAD 下载的数据大小
pycurl.SPEED_UPLOAD 上传速度
pycurl.HEADER_SIZE 头部大小
pycurl.REQUEST_SIZE 请求大小
pycurl.CONTENT_LENGTH_DOWNLOAD 下载内容长度
pycurl.CONTENT_LENGTH_UPLOAD 上传内容长度
pycurl.CONTENT_TYPE 内容的类型
pycurl.RESPONSE_CODE 响应代码
pycurl.SPEED_DOWNLOAD 下载速度
pycurl.SSL_VERIFYRESULT
pycurl.INFO_FILETIME 文件的时间信息
pycurl.HTTP_CONNECTCODE HTTP 连接代码
pycurl.HTTPAUTH_AVAIL
pycurl.PROXYAUTH_AVAIL
pycurl.OS_ERRNO
pycurl.NUM_CONNECTS
pycurl.SSL_ENGINES
pycurl.INFO_COOKIELIST
pycurl.LASTSOCKET
pycurl.FTP_ENTRY_PATH

Python 相关文章推荐
python flask实现分页效果
Jun 27 Python
Python Socket实现简单TCP Server/client功能示例
Aug 05 Python
浅析Git版本控制器使用
Dec 10 Python
Python面向对象编程之继承与多态详解
Jan 16 Python
Python中交换两个元素的实现方法
Jun 29 Python
Python 列表的清空方式
Jan 13 Python
python3 正则表达式基础廖雪峰
Mar 25 Python
Python filter过滤器原理及实例应用
Aug 18 Python
关于python tushare Tkinter构建的简单股票可视化查询系统(Beta v0.13)
Oct 19 Python
python 制作简单的音乐播放器
Nov 25 Python
pygame面向对象的飞行小鸟实现(Flappy bird)
Apr 01 Python
使用python如何删除同一文件夹下相似的图片
May 07 Python
使用Python下载歌词并嵌入歌曲文件中的实现代码
Nov 13 #Python
Python设置Socket代理及实现远程摄像头控制的例子
Nov 13 #Python
深入解析Python中的urllib2模块
Nov 13 #Python
Python下的常用下载安装工具pip的安装方法
Nov 13 #Python
Python的Flask框架的简介和安装方法
Nov 13 #Python
Python编程入门之Hello World的三种实现方式
Nov 13 #Python
python编程开发之textwrap文本样式处理技巧
Nov 13 #Python
You might like
让你的WINDOWS同时支持MYSQL4,MYSQL4.1,MYSQL5X
2006/12/06 PHP
PHP学习笔记之二
2011/01/17 PHP
什么是PHP文件?如何打开PHP文件?
2017/06/27 PHP
Laravel下生成验证码的类
2017/11/15 PHP
Laravel 6 将新增为指定队列任务设置中间件的功能
2019/08/06 PHP
JavaScript加密解密7种方法总结分析
2007/10/07 Javascript
javascript中的delete使用详解
2013/04/11 Javascript
nodejs中使用monk访问mongodb
2014/07/06 NodeJs
jquery实现先淡出再折叠收起的动画效果
2015/08/07 Javascript
基于BootStrap与jQuery.validate实现表单提交校验功能
2016/12/22 Javascript
BootStrap表单验证 FormValidation 调整反馈图标位置的实例代码
2017/05/17 Javascript
利用Ionic2 + angular4实现一个地区选择组件
2017/07/27 Javascript
js实现可以点击收缩或张开的悬浮窗
2017/09/18 Javascript
原生JS实现循环Nodelist Dom列表的4种方式示例
2018/02/11 Javascript
Vue常用指令详解分析
2018/08/19 Javascript
vue select选择框数据变化监听方法
2018/08/24 Javascript
html+vue.js 实现漂亮分页功能可兼容IE
2020/11/07 Javascript
vue.js页面加载执行created,mounted的先后顺序说明
2020/11/07 Javascript
python通过自定义isnumber函数判断字符串是否为数字的方法
2015/04/23 Python
关于Python元祖,列表,字典,集合的比较
2017/01/06 Python
深入解答关于Python的11道基本面试题
2017/04/01 Python
python基础_文件操作实现全文或单行替换的方法
2017/09/04 Python
Pytorch加载部分预训练模型的参数实例
2019/08/18 Python
python如何快速拼接字符串
2020/10/28 Python
L*SPACE官网:比基尼、泳装和度假服装
2019/03/18 全球购物
敏捷开发的主要原则都有哪些
2015/04/26 面试题
质检部职责
2013/12/28 职场文书
大学开学计划书
2014/04/30 职场文书
管理标语大全
2014/06/24 职场文书
2014年仓库管理员工作总结
2014/11/18 职场文书
2015新年寄语(一句话)
2014/12/08 职场文书
大学生在校表现评语
2014/12/31 职场文书
八年级上册语文教学计划
2015/01/22 职场文书
公务员个人年终总结
2015/02/12 职场文书
2015年第十五个全民国防教育日宣传活动方案
2015/05/06 职场文书
Win11怎么跳过联网验机 ?Win11跳过联网验机激活教程
2022/04/05 数码科技