简单谈谈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 读写文件和file对象的方法(推荐)
Sep 12 Python
Python+树莓派+YOLO打造一款人工智能照相机
Jan 02 Python
python中类的属性和方法介绍
Nov 27 Python
基于python实现KNN分类算法
Apr 23 Python
python实现杨氏矩阵查找
Mar 02 Python
使用Python进行中文繁简转换的实现代码
Oct 18 Python
python自动分箱,计算woe,iv的实例代码
Nov 22 Python
python主线程与子线程的结束顺序实例解析
Dec 17 Python
Python vtk读取并显示dicom文件示例
Jan 13 Python
Django之form组件自动校验数据实现
Jan 14 Python
利用python批量爬取百度任意类别的图片的实现方法
Oct 07 Python
详解用Python把PDF转为Word方法总结
Apr 27 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
PHP中的日期及时间
2006/11/23 PHP
PHP 设计模式之观察者模式介绍
2012/02/22 PHP
php把数据表导出为Excel表的最简单、最快的方法(不用插件)
2014/05/10 PHP
php+mysql不用递归实现的无限级分类实例(非递归)
2014/07/08 PHP
PHP入门教程之使用Mysqli操作数据库的方法(连接,查询,事务回滚等)
2016/09/11 PHP
PHP获取访问页面HTTP状态码的实现代码
2016/11/03 PHP
JavaScrip单线程引擎工作原理分析
2010/09/04 Javascript
初学js插入节点appendChild insertBefore使用方法
2011/07/04 Javascript
chrome下jq width()方法取值为0的解决方法
2014/05/26 Javascript
jquery中attr和prop的区别分析
2015/03/16 Javascript
js操作数据库实现注册和登陆的简单实例
2016/05/26 Javascript
jquery插件uploadify多图上传功能实现代码
2016/08/12 Javascript
有关JS中的0,null,undefined,[],{},'''''''',false之间的关系
2017/02/14 Javascript
VUE中v-model和v-for指令详解
2017/06/23 Javascript
element-ui中的select下拉列表设置默认值方法
2018/08/24 Javascript
小程序登录态管理的方法示例
2018/11/13 Javascript
Elasticsearch实现复合查询高亮结果功能
2019/09/10 Javascript
用Python的SimPy库简化复杂的编程模型的介绍
2015/04/13 Python
Python编程实现双链表,栈,队列及二叉树的方法示例
2017/11/01 Python
单利模式及python实现方式详解
2018/03/20 Python
使用python将时间转换为指定的格式方法
2018/11/12 Python
对Python中一维向量和一维向量转置相乘的方法详解
2019/08/26 Python
使用Python实现 学生学籍管理系统
2019/11/26 Python
python写一个随机点名软件的实例
2019/11/28 Python
Tensorflow Summary用法学习笔记
2020/01/10 Python
Matplotlib中%matplotlib inline如何使用
2020/07/28 Python
《雨点儿》教学反思
2014/04/14 职场文书
大学生精神文明先进个人事迹材料
2014/05/02 职场文书
职业规划实施方案
2014/06/10 职场文书
学校四群教育实施方案
2014/06/12 职场文书
法学自荐信
2014/06/20 职场文书
超市促销活动总结
2014/07/01 职场文书
2014年教师党员自我评议
2014/09/19 职场文书
集团财务总监岗位职责
2015/04/03 职场文书
500字作文之难忘的同学
2019/12/20 职场文书
Win11 21h2可以升级22h2吗?看看你的电脑符不符合要求
2022/07/07 数码科技