前言
今天在下班时候做地铁,突然想起,我写这么多库会不会让别人以为我咋咋地,所以我在每个库的标题后面加了,我对该库的掌握程度,熟悉,就是经常使用,自己感觉还可以,了解就是知道基本的API,使用的频率相对少一些,好了,进入今天的正题,依旧是一个基础库pycurl!
首先,老规矩,我在学习一个新东西时候都会问自己几个问题!
1.这是什么?
2.这个东西能干什么?
3.这个东西怎么使用?
那么我们依次来说下这几个问题
1.pycurl是什么?
有这么一段话
PycURl是一个C语言写的libcurl的python绑定库。libcurl 是一个自由的,并且容易使用的用在客户端的 URL 传输库。它的功能很强大,PycURL 是一个非常快速(参考多并发操作)和丰富完整特性的,但是有点复杂的接口。如果你需要些简单或纯的模块,你可以参考一下 urllib2 或 urlgrabber
这段话里面出现的libcurl又是什么呢?
libcurl百度百科,如果没看懂,那没关系,我给你翻译一下,这就是个用C语言写的请求库,支持多种协议,也支持多种操作,像什么Cookie、代理、表单提交之类的
那么PycURl和libcurl又是什么关系呢?简单来说PycURL就是libcurl在python里的封装,也就是python版的libcurl,这下懂了吧,明确了敌人是谁那就简单了!
2.pycurl能干什么?
pycurl支持如下功能
在PyCURL的主页上介绍的支持的功能有:FTP, FTPS, HTTP, HTTPS, GOPHER, TELNET, DICT, FILE、proxies, cookies, user+password authentication, file transfer resume, http proxy tunneling!
我们可以看到pycurl基本支持所有的请求库的功能,如果你不想知道他是怎么使用的好 urllib和 urllib3这俩选一个都能实现你所需要的功能!
但是如果你想了解了解自己还不知道的东西,那么就继续向下看!
3.pycurl怎么使用?
1.安装pycurl
pip install pycurl
2.导入pycurl
import pycurl
3.pycurl基本使用
curl=pycurl.Curl
需要一个curl对象,所以第一步先创建curl对象
import pycurl
url='https://www.baidu.com/'
c=pycurl.Curl#需要一个curl对象,所以第一步先创建curl对象
c.setopt(pycurl.URL,"https://www.baidu.com/")#发起请求
设置请求头
c.setopt(pycurl.USERAGENT,"Mozilla/5.0 (Windows NT 10.0; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/70.0.3538.102 Safari/537.36")
c.setopt(pycurl.URL,url)
c.setopt(pycurl.CONNECTTIMEOUT,5)#设置连接等待时间
c.setopt(pycurl.NOPROGRESS,0)#下载进度条,非0时候不显示
c.setopt(pycurl.MAXREDIRS,3)#最大重定向次数
c.getinfo(pycurl.HTTP_CODE)#返回请求状态码码
c.getinfo(pycurl.TOTAL_TIME)#显示传输结束需要的时间
c.getinfo(pycurl.SIZE_UPLOAD)#显示上传数据包大小
c.getinfo(pycurl.SIZE_DOWNLOAD)#显示下载数据包大小
c.getinfo(pycurl.SPPEED_DOWNLOAD)#显示下载速度
c.getinfo(pycurl.SPEED_UPLOAD)#显示上传速度
c.getinfo(pycurl.HEADER_SIZE)#显示数据包头部大小
后记
其他更详细的请参考pycurl
例子请参考pycur例子
pycurl官方文档
github上的pycurl