Pycurl は C 言語で書かれた強力な Python URL ライブラリであり、urllib や httplib よりも高速です。
今日は、pycurl の使い方とパラメータを詳しく見ていきます
一般的なメソッド:
pycurl.Curl() #pycurl オブジェクトを作成するメソッド
pycurl.Curl().setopt(pycurl.URL, http :// www.pythontab.com) #アクセスする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/5.0 (互換性; MSIE 6.0; Windows) NT 5.1; .NET CLR 1.1.4322)") #ブラウザーをシミュレート
pycurl.Curl().perform() #サーバーから返された情報
pycurl.Curl().getinfo(pycurl.HTTP_CODE) #View 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_CODE HTTPレスポンスコード
pycurl.REDIRECT_COUNT 数値リダイレクト数
pycurl.SIZ E_UPLOAD アップロードされたデータのサイズ
pycurl.SIZE_DOWNLOAD ダウンロードされたデータのサイズ
pycurl.SPEED_UPLOAD アップロード速度
pycurl.HEADER_SIZE ヘッダーのサイズ
pycurl.REQUEST_SIZE リクエストのサイズ
pycurl.CON TENT_LENGTH_DOWNLOAD ダウンロード コンテンツの長さ
pycurl.CONTENT_LENGTH_UPLOAD アップロードコンテンツの長さ
pycurl.CONTENT_TYPE コンテンツタイプ
pycurl.RESPONSE_CODE レスポンスコード
pycurl.SPEED_DOWNLOAD ダウンロード速度
pycurl.SSL_VERIFYRESULT
pycurl.INFO_FILETIME ファイルの時間情報
pycurl. HTTP_CONNECTCODE HTTP 接続コード
pycurl.HTTPAUTH_AVAIL
pycurl.PROXYAUTH_AVAIL
pycurl.OS_ERRNO
pycurl.NUM_CONNECTS
pycurl.SSL_ENGINES
pycurl.INFO_COOKIELIST
py curl.LASTSOCKET
pycur l.FTP_ENTRY_PATH
例:
import StringIO import pycurl c = pycurl.Curl() str = StringIO.StringIO() c.setopt(pycurl.URL, "http://www.pythontab.com") c.setopt(pycurl.WRITEFUNCTION, str.write) c.setopt(pycurl.FOLLOWLOCATION, 1) c.perform() print c.getinfo(pycurl.EFFECTIVE_URL)
PHP に詳しい友人の皆さん、この CURL ライブラリの使用法が PHP の CURL と非常に似ていることに気付いたかもしれません。