Python的pycurl包用法简介
pycurl是功能强大的python的url包,是用c语言写的,速度很快,比urllib和httplib都快
调用方法:
importpycurl c=pycurl.Curl() c.setopt(pycurl.URL,'http://api.minicloud.com.cn/statuses/public_timeline.xml') importStringIO#这个用到里面的write函数 b=StringIO.StringIO() c.setopt(pycurl.WRITEFUNCTION,b.write)#把StringIO的写函数注册到pycurl的WRITEFUNCTION中,即pycurl所有获取的内容都写入到StringIO中,如果没有这一句,pycurl就会把所有的内容在默认的输出器中输出 c.perform() printb.getvalue()
这里有一个小例子,用来获取微博上流行的短地址对应的真实地址的
importStringIO importpycurl c=pycurl.Curl() str=StringIO.StringIO() c.setopt(pycurl.URL,"http://t.cn/aKln8T") c.setopt(pycurl.WRITEFUNCTION,str.write) c.setopt(pycurl.FOLLOWLOCATION,1) c.perform() printc.getinfo(pycurl.EFFECTIVE_URL)
可见pycurl是十分强大和简洁的,只是要熟悉它的很多属性,下面来看一些常用的:
pycurl.Curl()#创建一个pycurl对象的方法
pycurl.Curl(pycurl.URL,http://www.google.com.hk)#设置要访问的URL
pycurl.Curl().setopt(pycurl.MAXREDIRS,5)#设置最大重定向次数
pycurl.Curl().setopt(pycurl.CONNECTTIMEOUT,60)
pycurl.Curl().setopt(pycurl.TIMEOUT,300)#连接超时设置
pycurl.Curl().setopt(pycurl.USERAGENT,"Mozilla/4.0(compatible;MSIE6.0;WindowsNT5.1;SV1;.NETCLR1.1.4322)")#模拟浏览器
pycurl.Curl().perform()#服务器端返回的信息
pycurl.Curl().getinfo(pycurl.HTTP_CODE)#查看HTTP的状态类似urllib中status属性
pycurl.NAMELOOKUP_TIME域名解析时间
pycurl.CONNECT_TIME远程服务器连接时间
pycurl.PRETRANSFER_TIME连接上后到开始传输时的时间
pycurl.STARTTRANSFER_TIME接收到第一个字节的时间
pycurl.TOTAL_TIME上一请求总的时间
pycurl.REDIRECT_TIME如果存在转向的话,花费的时间
pycurl.EFFECTIVE_URL
pycurl.HTTP_CODEHTTP响应代码
pycurl.REDIRECT_COUNT重定向的次数
pycurl.SIZE_UPLOAD上传的数据大小
pycurl.SIZE_DOWNLOAD下载的数据大小
pycurl.SPEED_UPLOAD上传速度
pycurl.HEADER_SIZE头部大小
pycurl.REQUEST_SIZE请求大小
pycurl.CONTENT_LENGTH_DOWNLOAD下载内容长度
pycurl.CONTENT_LENGTH_UPLOAD上传内容长度
pycurl.CONTENT_TYPE内容的类型
pycurl.RESPONSE_CODE响应代码
pycurl.SPEED_DOWNLOAD下载速度
pycurl.SSL_VERIFYRESULT
pycurl.INFO_FILETIME文件的时间信息
pycurl.HTTP_CONNECTCODEHTTP连接代码
pycurl.HTTPAUTH_AVAIL
pycurl.PROXYAUTH_AVAIL
pycurl.OS_ERRNO
pycurl.NUM_CONNECTS
pycurl.SSL_ENGINES
pycurl.INFO_COOKIELIST
pycurl.LASTSOCKET
pycurl.FTP_ENTRY_PATH