requests庫簡單易用的HTTP庫git
格式: requests.get(url) github
注意:若須要傳請求參數,可直接在 url 最後的 ? 後面,也能夠調用 get() 時多加一個參數 params ,傳入請求參數,注意須要是 dict 格式;以下圖所示json
1 url = 'http://127.0.0.1:8888/passport/user/login' 2 param = { 3 'username': '123', 4 'password': '321' 5 } 6 7 """經過params傳參""" 8 res = requests.get(url, params=param) 9 # {'code': 200, 'msg': 'success', 'password': '321', 'username': '123'} 10 print(res.json()) 11 12 """經過params方式傳參,最終發出的url也是一致的""" 13 # http://127.0.0.1:8888/passport/user/login?username=123&password=321 14 print(res.url) 15 16 """經過url最後加上請求參數列表""" 17 url = 'http://127.0.0.1:8888/passport/user/login?username=123&password=321' 18 res = requests.get(url, verify=False) 19 # {'code': 200, 'msg': 'success', 'password': '321', 'username': '123'} 20 print(res.text)
重點:發送請求賦值的res,能夠當作是請求的上下文,既能夠獲取請求相關參數值,也能夠獲取響應相關參數值api
格式: requests.post(url,data) cookie
注意:若無請求參數可不傳 data ;當傳入請求參數時,須要傳 dict 格式app
1 url = 'http://127.0.0.1:8888/passport/user/post_login' 2 data = { 3 'username': '123', 4 'password': '321' 5 } 6 7 """傳入請求參數""" 8 res = requests.post(url, data=data) 9 # {'code': 200, 'msg': 'success', 'password': '321', 'username': '123'} 10 print(res.json()) 11 12 """查看請求url""" 13 # http://127.0.0.1:8888/passport/user/post_login 14 print(res.url)
1 r = requests.put('http://httpbin.org/put', data={'key': 'value'}).text 2 r = requests.delete('http://httpbin.org/delete').text 3 r = requests.head('http://httpbin.org/head').text
1 """自定義headers""" 2 url = 'https://api.github.com/some/endpoint' 3 headers = {'user-agent': 'my-app/0.0.1'} 4 5 r = requests.get(url, headers=headers) 6 # {'message': 'Not Found', 'documentation_url': 'https://developer.github.com/v3'} 7 print(r.json()) 8 9 """自定義cookies""" 10 url = 'http://httpbin.org/cookies' 11 cookies = dict(cookies_are='working') 12 cookies2 = {'cookies_are': 'working'} 13 14 r = requests.get(url, cookies=cookies) 15 # {'cookies': {'cookies_are': 'working'}} 16 print(r.json())
當發送請求若是報以上錯誤時,能夠在請求方法里加多一個字段 verify=False ,就能夠解決此問題;此操做是爲了免去驗證步驟post
url = 'https://www.imooc.com' res = requests.get(url, verify=False)
注意:當調用 json() 時,確保響應內容是json格式字符串,不然會報錯url
1 url = 'http://127.0.0.1:8888/passport/user/login' 2 param = { 3 'username': '123', 4 'password': '321' 5 } 6 res = requests.get(url, params=param) 7 print('請求url: ' + res.url) 8 print('響應內容 json格式: ' + json.dumps(res.json())) 9 print('響應內容 字符串格式: ' + res.text) 10 print('響應內容 二進制格式: ' + str(res.content)) 11 print('響應碼: ' + str(res.status_code))
注意:headers裏面的key是大小寫不敏感的spa
>>> r.headers['Content-Type'] 'application/json' >>> r.headers.get('content-type') 'application/json'
>>> r.cookies['example_cookie_name'] 'example_cookie_value'