Linux では一般的に使用されるコマンド、curl (非常に使いやすい) があります。curl をサポートする有名な libcurl ライブラリは、強力で非常に効率的な関数ライブラリです。 libcurl は独自の C API を提供するだけでなく、最大 40 のプログラミング言語のバインディングも備えています。ここで紹介する PycURL は libcurl の Python バインディングです。
Python で Web ページに GET/POST リクエストを行う場合、高いパフォーマンスを考慮する必要がある場合、libcurl は liburl や liburl2 よりもはるかに高速であり、リクエストよりも効率的である可能性があります。高い。特に PycURL の複数の同時リクエストを使用する場合、非常に効率的です。個人的に唯一の欠点は、libcurl C ライブラリを直接呼び出すため、PycURL の関数インターフェイスが C のものと非常に似ていることです。あまり Python 的ではない可能性があり、コードを書く学習曲線は liburl よりもわずかに高くなります。少し。
簡単な例を見てみましょう:
コードをコピーします コードは次のとおりです:
#! /bin/ env python
# -*-coding: utf-8 -*-
'''
2013 年 12 月 15 日に作成
@author: Jay
'' '
import sys
import pycurl
import time
class Test:
def __init__(self):
self.contents = ''
def body_callback(self, buf):
self.contents = self.contents + buf
sys.stderr.write("Testing %sn" % 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
print c.getinfo(pycurl.HTTP_CODE), c.getinfo(pycurl.EFFECTIVE_URL)
c.close()
print 'pycurl は %s を取得するのに %s 秒かかります ' % (duration , url)
print 'コンテンツの長さは %d' % len(t.contents)
#print(t.contents)