简单谈谈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 相关文章推荐
跟老齐学Python之有容乃大的list(3)
Sep 15 Python
理解python正则表达式
Jan 15 Python
Python与Java间Socket通信实例代码
Mar 06 Python
Python学习笔记之解析json的方法分析
Apr 21 Python
用python制作游戏外挂
Jan 04 Python
Python进程间通信Queue实例解析
Jan 25 Python
Python实现定时备份mysql数据库并把备份数据库邮件发送
Mar 08 Python
python之线程通过信号pyqtSignal刷新ui的方法
Jan 11 Python
Python 保存矩阵为Excel的实现方法
Jan 28 Python
python实现诗歌游戏(类继承)
Feb 26 Python
教你怎么用python爬取爱奇艺热门电影
May 20 Python
详解Python+OpenCV绘制灰度直方图
Mar 22 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
destoon首页调用求购供应信息的地区名称的方法
2014/08/21 PHP
PHP中echo和print的区别
2014/08/28 PHP
php生成验证码函数
2015/10/20 PHP
PHP实现批量检测网站是否能够正常打开的方法
2016/08/23 PHP
Ajax中的JSON格式与php传输过程全面解析
2017/11/14 PHP
php实现通过stomp协议连接ActiveMQ操作示例
2020/02/23 PHP
jQuery ui插件的使用方法代码实例
2013/05/08 Javascript
jQuery实现长文字部分显示代码
2013/05/13 Javascript
常用的几段javascript代码分享
2014/03/25 Javascript
JS实现的通用表单验证插件完整实例
2015/08/20 Javascript
AngularJS中$interval的用法详解
2016/02/02 Javascript
微信小程序 底部导航栏目开发资料
2016/12/05 Javascript
浅谈键盘上回车按钮的js触发事件
2017/02/13 Javascript
微信小程序小组件 基于Canvas实现直播点赞气泡效果
2020/05/29 Javascript
JS实现控制图片显示大小的方法【图片等比例缩放功能】
2017/02/18 Javascript
Node.js如何响应Ajax的POST请求并且保存为JSON文件详解
2017/03/10 Javascript
使用jQuery实现一个类似GridView的编辑,更新,取消和删除的功能
2017/03/15 Javascript
Angular 4依赖注入学习教程之ClassProvider的使用(三)
2017/06/04 Javascript
深入理解Vue父子组件生命周期执行顺序及钩子函数
2018/08/12 Javascript
js的对象与函数详解
2019/01/21 Javascript
深入理解Python 代码优化详解
2014/10/27 Python
python解析基于xml格式的日志文件
2017/02/25 Python
Python实现针对中文排序的方法
2017/05/09 Python
新手常见6种的python报错及解决方法
2018/03/09 Python
unittest+coverage单元测试代码覆盖操作实例详解
2018/04/04 Python
python3 selenium 切换窗口的几种方法小结
2018/05/21 Python
python smtplib发送带附件邮件小程序
2018/05/22 Python
Python+OpenCV实现旋转文本校正方式
2020/01/09 Python
英国最大的纸工艺品商店:CraftStash
2018/12/01 全球购物
古驰英国官网:GUCCI英国
2020/03/07 全球购物
元旦晚会上单位领导演讲稿
2014/01/05 职场文书
实习报告评语
2014/04/26 职场文书
2014年党员自我评价材料
2014/09/22 职场文书
mysql脏页是什么
2021/07/26 MySQL
你需要掌握的20个Python常用技巧
2022/02/28 Python
python字符串的一些常见实用操作
2022/04/06 Python