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通过解析网页实现看报程序的方法
Aug 04 Python
python实现Adapter模式实例代码
Feb 09 Python
python对视频画框标记后保存的方法
Dec 07 Python
python 处理微信对账单数据的实例代码
Jul 19 Python
python django下载大的csv文件实现方法分析
Jul 19 Python
dpn网络的pytorch实现方式
Jan 14 Python
python实现音乐播放和下载小程序功能
Apr 26 Python
解决pycharm编辑区显示yaml文件层级结构遇中文乱码问题
Apr 27 Python
将pycharm配置为matlab或者spyder的用法说明
Jun 08 Python
最新版 Windows10上安装Python 3.8.5的步骤详解
Nov 28 Python
selenium+超级鹰实现模拟登录12306
Jan 24 Python
Python实现自动玩连连看的脚本分享
Apr 04 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的array_multisort()使用方法介绍
2012/05/16 PHP
给ECShop添加最新评论
2015/01/07 PHP
PHP使用mysqldump命令导出数据库
2015/04/14 PHP
递归实现php数组转xml的代码分享
2015/05/14 PHP
Laravel使用Caching缓存数据减轻数据库查询压力的方法
2016/03/15 PHP
PHPExcel简单读取excel文件示例
2016/05/26 PHP
php blowfish加密解密算法
2016/07/02 PHP
预加载css或javascript的js代码
2010/04/23 Javascript
jQuery图片播放8款精美插件分享
2013/02/17 Javascript
JavaScript的模块化:封装(闭包),继承(原型) 介绍
2013/07/22 Javascript
jquery统计用户选中的复选框的个数
2014/06/06 Javascript
js图片模糊切换显示特效的方法
2015/02/17 Javascript
js兼容火狐显示上传图片预览效果的方法
2015/05/21 Javascript
jQuery+ajax实现无刷新级联菜单示例
2015/05/21 Javascript
JavaScript ES5标准中新增的Array方法
2016/06/28 Javascript
手机浏览器 后退按钮强制刷新页面方法总结
2016/10/09 Javascript
自学实现angularjs依赖注入
2016/12/20 Javascript
JavaScript中object和Object的区别(详解)
2017/02/27 Javascript
Angular.JS中指令ng-if、ng-show/ng-hide和ng-switch的使用教程
2017/05/07 Javascript
React学习笔记之列表渲染示例详解
2017/08/22 Javascript
Vue 项目代理设置的优化
2018/04/17 Javascript
使用Vue如何写一个双向数据绑定(面试常见)
2018/04/20 Javascript
微信小程序实现倒计时调用相机自动拍照功能
2018/06/10 Javascript
Vue Router的懒加载路径的解决方法
2018/06/21 Javascript
vue slots 组件的组合/分发实例
2018/09/06 Javascript
[03:38]TI4西雅图DOTA2前线报道 71专访
2014/07/08 DOTA
python对配置文件.ini进行增删改查操作的方法示例
2017/07/28 Python
Windows下Anaconda的安装和简单使用方法
2018/01/04 Python
Python3删除排序数组中重复项的方法分析
2019/01/31 Python
Pytorch.nn.conv2d 过程验证方式(单,多通道卷积过程)
2020/01/03 Python
python调用百度API实现人脸识别
2020/11/17 Python
TripAdvisor越南:全球领先的旅游网站
2017/09/21 全球购物
输入N,打印N*N矩阵
2012/02/20 面试题
党员培训思想汇报
2014/01/07 职场文书
乔布斯斯坦福大学演讲稿
2014/05/23 职场文书
windows10声卡驱动怎么安装?win10声卡驱动安装操作步骤教程
2022/08/05 数码科技