requestsライブラリのメソッド一覧

用途としては、HTTPの情報を取得するときに使う。取得した後に、BeautifulSoupなどを利用して、htmlの構文解析を行ったりする。

requestsにはHTTPリクエストと同じように以下のようなメソッドが存在する。

requests.post()
requests.get()
requests.patch()
requests.delete()
requests.put()
requests.head()

getメソッドはHTTPリクエストのGETに相当する。他も同様にそれぞれHTTPリクエストに相当する。

requests.get()

Responseオブジェクト

一番ベーシックになるのがget()メソッド。get()の第一引数にurlを指定することでResponseオブジェクトを取得することが出来る。

import requests

target_url = 'https://www.yahoo.co.jp/'
r = requests.get(target_url)
print(r)
#  <Response [200]>

encoding属性

>>> r.encoding
# UTF-8

text属性

エンコーディングされたテキストを取得出来る。

>>> r.text
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">\n<html>\n<head>\n<meta http-equiv="content-type" content="text/html; charset=utf-8">\n<meta http-equiv="content-style-type" content="text/css">\n<meta http-equiv="content-script-type" content="text/javascript">\n<meta name="description" content="日本最大級のポータルサイト。検索、オークション、ニュース、メール、コミュニティ、ショッピング、など80以上のサービスを展開。あな

content属性

デコードされていないテキスト

>>>r.content
b'<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">\n<html>\n<head>\n<meta http-equiv="content-type" content="text/html; charset=utf-8">\n<meta http-equiv="content-style-type" content="text/css">\n<meta http-equiv="content-script-type" content="text/javascript">\n<meta

headers属性

レスポンスヘッダの取得

>>> r.headers
{'Date': 'Mon, 09 Sep 2019 14:33:30 GMT', 'P3P': 'policyref="http://privacy.yahoo.co.jp/w3c/p3p_jp.xml", CP="CAO DSP COR CUR ADM DEV TAI PSA PSD IVAi IVDi CONi TELo OTPi OUR DELi SAMi OTRi UNRi PUBi IND PHY ONL UNI PUR FIN COM NAV INT DEM CNT STA POL HEA PRE GOV"', 'X-Content-Type-Options': 'nosniff', 'X-XSS-Protection': '1; mode=block', 'X-Frame-Options': 'SAMEORIGIN', 'Vary': 'Accept-Encoding', 'Content-Encoding': 'gzip', 'Expires': '-1', 'Pragma': 'no-cache', 'Cache-Control': 'private, no-cache, no-store, must-revalidate', 'Content-Length': '5010', 'Content-Type': 'text/html; charset=UTF-8', 'Age': '0', 'Connection': 'keep-alive', 'Via': 'http/1.1 edge2424.img.djm.yahoo.co.jp (ApacheTrafficServer [c sSf ])', 'Server': 'ATS'}

status_code属性

レスポンスのステータスコードを取得することが出来る。

>>> r.status_code
200

200以外の不正なリクエストに対して例外処理を実施したい場合には、raise_for_status()メソッドを利用することが出来る。

>>> r.raise_for_status()

ステータスが200の時は何も起こらない。

第二引数

第二引数にパラメータをセットすることも出来る。

辞書型で定義する。URLにパラメータをセットすることができる。

>>> payload = {'key1': 'value1', 'key2': 'value2'}
>>> r = requests.get("http://httpbin.org/get", params=payload)
>>> print r.url
# http://httpbin.org/get?key2=value2&key1=value1

以下はユーザーエージェントを指定する例。
headers = {‘User-Agent’: ‘Sample Header’}
requests.get(‘URL’, headers=headers)

参考サイト