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 相关文章推荐
剖析Django中模版标签的解析与参数传递
Jul 21 Python
Python数据结构与算法之链表定义与用法实例详解【单链表、循环链表】
Sep 28 Python
Python通过命令开启http.server服务器的方法
Nov 04 Python
python 3.6 +pyMysql 操作mysql数据库(实例讲解)
Dec 20 Python
python如何拆分含有多种分隔符的字符串
Mar 20 Python
Python实现的计算马氏距离算法示例
Apr 03 Python
python检测空间储存剩余大小和指定文件夹内存占用的实例
Jun 11 Python
Python3实现爬取简书首页文章标题和文章链接的方法【测试可用】
Dec 11 Python
多个python文件调用logging模块报错误
Feb 12 Python
Python3.7安装PyQt5 运行配置Pycharm的详细教程
Oct 15 Python
Python+Opencv实现把图片、视频互转的示例
Dec 17 Python
基于Python实现对比Exce的工具
Apr 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
PHP&MYSQL服务器配置说明
2006/10/09 PHP
PHP array_flip() 删除重复数组元素专用函数
2010/05/16 PHP
PHP多态代码实例
2015/06/26 PHP
thinkphp5.1 文件引入路径问题及注意事项
2018/06/13 PHP
thinkphp3.2框架中where条件查询用法总结
2019/08/13 PHP
Javascript this指针
2009/07/30 Javascript
jQuery实现form表单reset按钮重置清空表单功能
2012/12/18 Javascript
JavaScript中for-in遍历方式示例介绍
2014/02/11 Javascript
IE中图片的onload事件无效问题和解决方法
2014/06/06 Javascript
JavaScript数据结构与算法之栈详解
2015/03/12 Javascript
JQuery实现DIV其他动画效果的简单实例
2016/09/18 Javascript
node.js(express)中使用Jcrop进行图片剪切上传功能
2017/04/21 Javascript
Nodejs回调加超时限制两种实现方法
2017/06/09 NodeJs
JavaScript基于activexobject连接远程数据库SQL Server 2014的方法
2017/07/12 Javascript
vue.js中实现登录控制的方法示例
2018/04/23 Javascript
通过npm或yarn自动生成vue组件的方法示例
2019/02/12 Javascript
详解vue中多个有顺序要求的异步操作处理
2019/10/29 Javascript
[01:56]2014DOTA2西雅图邀请赛 MVP外卡赛老队长精辟点评
2014/07/09 DOTA
快速解决pandas.read_csv()乱码的问题
2018/06/15 Python
python matlibplot绘制多条曲线图
2021/02/19 Python
Flask框架使用DBUtils模块连接数据库操作示例
2018/07/20 Python
浅谈django三种缓存模式的使用及注意点
2018/09/30 Python
python os.listdir按文件存取时间顺序列出目录的实例
2018/10/21 Python
python web自制框架之接受url传递过来的参数实例
2018/12/17 Python
python 模拟银行转账功能过程详解
2019/08/06 Python
WxPython实现无边框界面
2019/11/18 Python
python 使用elasticsearch 实现翻页的三种方式
2020/07/31 Python
2020年10款优秀的Python第三方库,看看有你中意的吗?
2021/01/12 Python
法雷奥SQA(electric)面试问题
2016/01/23 面试题
项目开发计划书
2014/01/09 职场文书
商务英语专业求职信范文
2014/01/28 职场文书
公立医院改革实施方案
2014/03/14 职场文书
初中班主任评语大全
2014/04/24 职场文书
Java各种比较对象的方式的对比总结
2021/06/20 Java/Android
Nginx虚拟主机的搭建的实现步骤
2022/01/18 Servers
Redis基本数据类型Zset有序集合常用操作
2022/06/01 Redis