#pycurlとの比較
###1.import
pycurl
import pycurl,json #pycurlとjsonデータ分析のため
from cStringIO import StringIO #テキストファイルライクなもの
requests
import requests #request本体だけ
import urllib3
from urllib3.exceptions import InsecureRequestWarning
urllib3関係はオレオレ証明書ワーニング突破のため。
jsonとテキストを用意する必要が無い。
(20180427 追加)
###1-1. 追加設定
requests
urllib3.disable_warnings(urllib3.exceptions.InsecureRequestWarning)
上記、ワーニング回避の追加設定。
失念していた・・・。ただ、これ入れてもrequestsの利便性における
優位性は圧倒的。
###2.実処理
pycurl
data.truncate(0) #繰り返し利用する場合、テキストの初期化が必要。
curl.setopt(pycurl.URL, 'http://~') #ここから
curl.setopt(pycurl.CUSTOMREQUEST, 'GET')
curl.setopt(pycurl.TIMEOUT, 300)
curl.setopt(pycurl.WRITEFUNCTION, data.write)
curl.setopt(pycurl.SSL_VERIFYPEER, 0) #ここまでがオプション
curl.perform() #実行
json.loads(data.getvalue()) #jsonデータ解析
requests
requests.get('http://~', verify=False, timeout=300).json()
requestsなら一行で済んでしまう。
IOの余計な処理もなし。
requests
#メソッド各種
requests.get('http://~', verify=False, timeout=300).json()
requests.post('http://~', verify=False, timeout=300).json()
requests.put('http://~', verify=False, timeout=300).json()
requests.delete('http://~', verify=False, timeout=300).json()
requests.head('http://~', verify=False, timeout=300).json()
#戻り値参照
r.status_code #ステータスコード
r.text #ボディ
r.content #バイナリ
putでデータを送信したり、認証のオプションとかもあるので、お作法については
本家URL参照。
http://docs.python-requests.org/en/master/