简单谈谈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 相关文章推荐
wxPython事件驱动实例详解
Sep 28 Python
Python中的作用域规则详解
Jan 30 Python
python在Windows8下获取本机ip地址的方法
Mar 14 Python
Python生成任意范围任意精度的随机数方法
Apr 09 Python
PyTorch中permute的用法详解
Dec 30 Python
python实现在一个画布上画多个子图
Jan 19 Python
python读取文件指定行内容实例讲解
Mar 02 Python
Python爬虫:Request Payload和Form Data的简单区别说明
Apr 30 Python
python爬虫实例之获取动漫截图
May 31 Python
python爬虫可以爬什么
Jun 16 Python
python 匿名函数与三元运算学习笔记
Oct 23 Python
Python通过Schema实现数据验证方式
Nov 12 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/10/09 PHP
深入解析PHP 5.3.x 的strtotime() 时区设定 警告信息修复
2013/08/05 PHP
PHP中iconv函数转码时截断字符问题的解决方法
2015/01/21 PHP
php微信开发之关注事件
2018/06/14 PHP
提高Laravel应用性能方法详解
2019/06/24 PHP
12个非常有创意的JavaScript小游戏
2010/03/18 Javascript
jQuery EasyUI中对表格进行编辑的实现代码
2010/06/10 Javascript
Extjs4 Treegrid 使用心得分享(经验篇)
2013/07/01 Javascript
jquery弹出框的用法示例(一)
2013/08/26 Javascript
jquery插件jquery倒计时插件分享
2013/12/27 Javascript
JQuery解析HTML、JSON和XML实例详解
2014/03/29 Javascript
jQuery事件绑定on()与弹窗实现代码
2016/04/28 Javascript
nodejs加密Crypto的实例代码
2016/07/07 NodeJs
js select实现省市区联动选择
2020/04/17 Javascript
HTML页面定时跳转方法解析(2种任选)
2016/12/22 Javascript
js实现复选框的全选和取消全选效果
2017/01/03 Javascript
从零学习node.js之搭建http服务器(二)
2017/02/21 Javascript
IE11下使用canvas.toDataURL报SecurityError错误的解决方法
2017/11/19 Javascript
解决vue 按钮多次点击重复提交数据问题
2018/05/10 Javascript
JavaScript设计模式之单例模式简单实例教程
2018/07/02 Javascript
Vue项目打包部署到iis服务器的配置方法
2019/10/14 Javascript
Ant Design Pro 之 ProTable使用操作
2020/10/31 Javascript
JavaScript实现网页跨年倒计时
2020/12/02 Javascript
vue实现图书管理系统
2020/12/29 Vue.js
关于Python中异常(Exception)的汇总
2017/01/18 Python
python实现简单中文词频统计示例
2017/11/08 Python
Python批量提取PDF文件中文本的脚本
2018/03/14 Python
Python 查找字符在字符串中的位置实例
2018/05/02 Python
Pytorch: 自定义网络层实例
2020/01/07 Python
tensorboard显示空白的解决
2020/02/15 Python
H5 canvas中width、height和style的宽高区别详解
2018/11/02 HTML / CSS
松本清官方海外旗舰店:日本最大的药妆连锁店
2017/11/21 全球购物
Wiggle澳大利亚:自行车、跑步、游泳商店
2020/11/07 全球购物
2015年元旦演讲稿
2014/09/12 职场文书
JavaScript实现淘宝商品图切换效果
2021/04/29 Javascript
36个正则表达式(开发效率提高80%)
2021/11/17 Javascript