LoginSignup
6
9

More than 5 years have passed since last update.

python:便利すぎるrequestsライブラリ

Last updated at Posted at 2018-04-27

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/

6
9
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
6
9