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 七种邮件内容发送方法实例
Apr 22 Python
利用Python脚本在Nginx和uwsgi上部署MoinMoin的教程
May 05 Python
用Python遍历C盘dll文件的方法
May 06 Python
Python itertools模块详解
May 09 Python
详解TensorFlow在windows上安装与简单示例
Mar 05 Python
Selenium控制浏览器常见操作示例
Aug 13 Python
浅析python参数的知识点
Dec 10 Python
对Python的zip函数妙用,旋转矩阵详解
Dec 13 Python
python Selenium实现付费音乐批量下载的实现方法
Jan 24 Python
python中struct模块之字节型数据的处理方法
Aug 27 Python
tensorflow实现从.ckpt文件中读取任意变量
May 26 Python
django的autoreload机制实现
Jun 03 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中上传大体积文件时需要的设置
2006/10/09 PHP
PHP在字符断点处截断文字的实现代码
2011/04/21 PHP
php中检查文件或目录是否存在的代码小结
2012/10/22 PHP
php实现图片缩放功能类
2013/12/18 PHP
Yii实现文章列表置顶功能示例
2016/10/18 PHP
实例分析基于PHP微信网页获取用户信息
2017/11/24 PHP
javascript事件模型代码
2007/07/01 Javascript
Javascript变量函数浅析
2011/09/02 Javascript
基于jQuery.Validate验证库知识点的详解
2013/04/26 Javascript
Backbone中View之间传值的学习心得
2016/08/09 Javascript
浅析ES6的八进制与二进制整数字面量
2016/08/30 Javascript
Vuejs第六篇之Vuejs与form元素实例解析
2016/09/05 Javascript
React中常见的动画实现的几种方式
2018/01/10 Javascript
JS实现的合并多个数组去重算法示例
2018/04/11 Javascript
JavaScript原型链与继承操作实例总结
2018/08/24 Javascript
jQuery实现的网站banner图片无缝轮播效果完整实例
2019/01/28 jQuery
vue项目中仿element-ui弹框效果的实例代码
2019/04/22 Javascript
详解微信小程序开发(项目从零开始)
2019/06/06 Javascript
javascript操作元素的常见方法小结
2019/11/13 Javascript
Vue快速实现通用表单验证的方法
2020/02/24 Javascript
用JS实现选项卡
2020/03/23 Javascript
vue实现循环滚动列表
2020/06/30 Javascript
Javascript前端下载后台传来的文件流代码实例
2020/08/18 Javascript
python分批定量读取文件内容,输出到不同文件中的方法
2018/12/08 Python
django框架用户权限中的session缓存到redis中的方法
2019/08/06 Python
在vscode中配置python环境过程解析
2019/09/28 Python
关于Python解包知识点总结
2020/05/05 Python
解决Python中导入自己写的类,被划红线,但不影响执行的问题
2020/07/13 Python
大学生社团活动总结
2014/04/26 职场文书
幼儿园中班个人总结
2015/02/28 职场文书
2015年大学学生会工作总结
2015/05/13 职场文书
婚礼长辈答谢词
2015/09/29 职场文书
《我的长生果》教学反思
2016/02/20 职场文书
Python基础 括号()[]{}的详解
2021/11/07 Python
船舶调度指挥系统——助力智慧海事
2022/02/18 无线电
Java中的Kotlin 内部类原理
2022/06/16 Java/Android