Python中的CURL PycURL使用例子
在Python中对网页进行GET/POST等请求,当需要考虑高性能的时候,libcurl是非常不错的选择,一般来说会比liburl、liburl2快不少,可能也会比Requests的效率更高。特别是使用PycURL的多并发请求时,更是效率很高的。个人感觉,其唯一的缺点是,由于是直接调用的是libcurlC库,PycURL的函数接口之类的还和C中的东西很像,可能不是那么的Pythonic,写代码的学习曲线稍微比liburl高一点儿。
还是看个简单的例子吧:
#!/usr/bin/envpython #-*-coding:utf-8-*- ''' CreatedonDec15,2013 @author:Jay ''' importsys importpycurl importtime classTest: def__init__(self): self.contents='' defbody_callback(self,buf): self.contents=self.contents+buf sys.stderr.write("Testing%s\n"%pycurl.version) start_time=time.time() url='http://www.dianping.com/shanghai' t=Test() c=pycurl.Curl() c.setopt(c.URL,url) c.setopt(c.WRITEFUNCTION,t.body_callback) c.perform() end_time=time.time() duration=end_time-start_time printc.getinfo(pycurl.HTTP_CODE),c.getinfo(pycurl.EFFECTIVE_URL) c.close() print'pycurltakes%ssecondstoget%s'%(duration,url) print'lenthofthecontentis%d'%len(t.contents) #print(t.contents)