简单谈谈Python的pycurl模块


Posted in Python onApril 07, 2018

pycurl是一个用c语言编写的libcurl Python实现,功能非常强大,支持操作协议有FTP,HTTP,HTTPS,TELNET等。

模块的常用方法说明:

close()方法,对应libcurl包中的curl_easy_cleanup方法,无参数,实现关闭、回收Curl对象。
·perform()方法,对应libcurl包中的curl_easy_perform方法,无参数,实现Curl对象请求的提交。
·setopt(option,value)方法,对应libcurl包中的curl_easy_setopt方法,参数option是通过libcurl的常量来指定的.参数value的值会依赖option,可以是一个字符串、整型、长整型、文件对象、列表或函数等

pycurl.Curl()    #创建一个curl对象
c.setopt(pycurl.CONNECTTIMEOUT,5)    #连接的等待时间,设置为0则不等待
c.setopt(pycurl.TIMEOUT,5)    #请求超时时间
c.setopt(pycurl.NOPROGRESS,0)    #是否屏蔽下载进度条,非0则屏蔽
c.setopt(pycurl.MAXREDIRS,5)    #指定HTTP重定向的最大数
c.setopt(pycurl.FORBID_REUSE,1)    #完成交互后强制断开连接,不重用
c.setopt(pycurl.FRESH_CONNECT,1)    #强制获取新的连接,即替代缓存中的连接
c.setopt(pycurl.DNS_CACHE_TIMEOUT,60)    #设置保存DNS信息的时间,默认为120秒
c.setopt(pycurl.URL,"http://www.baidu.com")    #指定请求的URL
c.setopt(pycurl.USERAGENT,"Mozilla/5.2(compatible;MSIE6.0;WindowsNT5.1;SV1;.NETCLR1.1.4322;.NETCLR2.0.50324)")#配置请求HTTP头的User-Agent
c.setopt(pycurl.HEADERFUNCTION,getheader)    #将返回的HTTPHEADER定向到回调函数getheader
c.setopt(pycurl.WRITEFUNCTION,getbody)    #将返回的内容定向到回调函数getbody
c.setopt(pycurl.WRITEHEADER,fileobj)    #将返回的HTTPHEADER定向到fileobj文件对象
c.setopt(pycurl.WRITEDATA,fileobj)    #将返回的HTML内容定向到fileobj文件对象

·getinfo(option)方法,对应libcurl包中的curl_easy_getinfo方法,参数option是通过libcurl的常量来指定的

c=pycurl.Curl()    #创建一个curl对象
c.getinfo(pycurl.HTTP_CODE)    #返回的HTTP状态码
c.getinfo(pycurl.TOTAL_TIME)    #传输结束所消耗的总时间
c.getinfo(pycurl.NAMELOOKUP_TIME)    #DNS解析所消耗的时间
c.getinfo(pycurl.CONNECT_TIME)    #建立连接所消耗的时间
c.getinfo(pycurl.PRETRANSFER_TIME)    #从建立连接到准备传输所消耗的时间
c.getinfo(pycurl.STARTTRANSFER_TIME)    #从建立连接到传输开始消耗的时间
c.getinfo(pycurl.REDIRECT_TIME)    #重定向所消耗的时间
c.getinfo(pycurl.SIZE_UPLOAD)    #上传数据包大小
c.getinfo(pycurl.SIZE_DOWNLOAD)    #下载数据包大小
c.getinfo(pycurl.SPEED_DOWNLOAD)    #平均下载速度
c.getinfo(pycurl.SPEED_UPLOAD)    #平均上传速度
c.getinfo(pycurl.HEADER_SIZE)    #HTTP头部大小

Python 相关文章推荐
pymongo给mongodb创建索引的简单实现方法
May 06 Python
python和bash统计CPU利用率的方法
Jul 10 Python
Python实现好友全头像的拼接实例(推荐)
Jun 24 Python
利用python3随机生成中文字符的实现方法
Nov 24 Python
django限制匿名用户访问及重定向的方法实例
Feb 07 Python
Django添加KindEditor富文本编辑器的使用
Oct 24 Python
在python带权重的列表中随机取值的方法
Jan 23 Python
python中的协程深入理解
Jun 10 Python
Python学习笔记之For循环用法详解
Aug 14 Python
使用Python刷淘宝喵币(低阶入门版)
Oct 30 Python
keras 自定义loss model.add_loss的使用详解
Jun 22 Python
Python变量及数据类型用法原理汇总
Aug 06 Python
VSCode下好用的Python插件及配置
Apr 06 #Python
VScode编写第一个Python程序HelloWorld步骤
Apr 06 #Python
在VS Code上搭建Python开发环境的方法
Apr 06 #Python
python装饰器深入学习
Apr 06 #Python
如何使用 Pylint 来规范 Python 代码风格(来自IBM)
Apr 06 #Python
python中pylint使用方法(pylint代码检查)
Apr 06 #Python
VSCode下配置python调试运行环境的方法
Apr 06 #Python
You might like
Body是什么,该怎么喝出咖啡里的口感
2021/03/03 咖啡文化
php stream_get_meta_data返回值
2013/09/29 PHP
在PHP中运行Linux命令并启动SSH服务的例子
2014/06/12 PHP
PHP实现合并discuz用户
2015/08/05 PHP
用HTML/JS/PHP方式实现页面延时跳转的简单实例
2016/07/18 PHP
解析arp病毒背后利用的Javascript技术附解密方法
2007/08/06 Javascript
IE下支持文本框和密码框placeholder效果的JQuery插件分享
2015/01/31 Javascript
JavaScript通过元素索引号删除数组中对应元素的方法
2015/03/18 Javascript
使用Node.js为其他程序编写扩展的基本方法
2015/06/23 Javascript
JS实现将数字金额转换为大写人民币汉字的方法
2016/08/02 Javascript
bootstrapValidator自定验证方法写法
2016/12/01 Javascript
详解使用VueJS开发项目中的兼容问题
2018/08/02 Javascript
使用vue2.0创建的项目的步骤方法
2018/09/25 Javascript
vue 使用axios 数据请求第三方插件的使用教程详解
2019/07/05 Javascript
解析JS在获取当前月的最后一天遇到的坑
2019/08/30 Javascript
微信小程序获取位置展示地图并标注信息的实例代码
2019/09/01 Javascript
微信小程序实现手指拖动选项排序
2020/04/22 Javascript
[41:52]DOTA2-DPC中国联赛 正赛 CDEC vs Dynasty BO3 第二场 2月22日
2021/03/11 DOTA
Python实现批量下载图片的方法
2015/07/08 Python
Python爬虫爬验证码实现功能详解
2016/04/14 Python
使用apidoc管理RESTful风格Flask项目接口文档方法
2018/02/07 Python
Python面向对象总结及类与正则表达式详解
2019/04/18 Python
基于python实现把图片转换成素描
2019/11/13 Python
tensorflow模型保存、加载之变量重命名实例
2020/01/21 Python
django实现将后台model对象转换成json对象并传递给前端jquery
2020/03/16 Python
Python多线程threading创建及使用方法解析
2020/06/17 Python
今天学到的CSS最新技术(与图片背景相关)
2012/12/24 HTML / CSS
Hotels.com香港酒店网:你的自由行酒店订房专家
2018/01/22 全球购物
Android interview questions
2016/12/25 面试题
高级文秘工作总结的自我评价
2013/09/28 职场文书
综合素质的自我鉴定
2013/10/07 职场文书
关于赌博的检讨书
2014/01/08 职场文书
会计学毕业生求职信
2014/06/25 职场文书
2015年市场营销工作总结
2015/07/23 职场文书
百年校庆感言
2015/08/01 职场文书
python numpy中setdiff1d的用法说明
2021/04/22 Python