環境搭建好后,接下來我們先來了解一下requests的一些簡單使用,主要包括:
- requests常用請求方法使用,包括:get,post
- requests庫中的Session、Cookie的使用
- 其它高級部分:認證、代理、證書驗證、超時配置、錯誤異常處理等。
?
本節首先來了解一下requests庫中如何發送get請求:
一、看下方法定義:
1、到官方文檔去了下requests.get()方法的定義,如下:
?
2、點擊右上角的【source】,看一下它的源碼如下:
?
看到最后一行return,get方法最后是通過調用?requests.request?方法實現的,其實在其它的請求方法如post,put,head,delete等方法都是調用的request方法,然后把請求方法的類型傳遞給request方法第一個參數。
?
3、HTTP協議是一個基于請求/響應模式的、無狀態的,應用層協議。既然有請求,就有響應,來看下resquest中常用的響應信息:
?
二、get方法簡單使用:?
1、不帶參數的get:
# -*- coding:utf-8 -*-
#不帶參數的getimport requests
import jsonhost = "http://httpbin.org/"
endpoint = "get"url = ''.join([host,endpoint])
r = requests.get(url)
#response = r.json()print type(r.text)
print (eval(r.text))
輸出:
{'origin': '183.14.133.88','headers': {'Connection': 'close','Host': 'httpbin.org','Accept-Encoding': 'gzip,deflate','Accept': '*/*','User-Agent': 'python-requests/2.18.1'},'args': {},'url': 'http: //httpbin.org/get'
}
?
2、 帶參數的get:
# -*- coding:utf-8 -*-
#帶參數的getimport requests
import jsonhost = "http://httpbin.org/"
endpoint = "get"url = ''.join([host,endpoint])
params = {"show_env":"1"}
r = requests.get(url=url,params=params)print r.url
?輸出:?
http://httpbin.org/get?show_env=1
{'origin': '183.14.133.88','headers': {'X-Request-Id': 'ebe922b4-c463-4fe9-9faf-49748d682fd7','Accept-Encoding': 'gzip,deflate','X-Forwarded-Port': '80','Total-Route-Time': '0','Connection': 'close','Connect-Time': '0','Via': '1.1vegur','X-Forwarded-For': '183.14.133.88','Accept': '*/*','User-Agent': 'python-requests/2.18.1','X-Request-Start': '1504755961007','Host': 'httpbin.org','X-Forwarded-Proto': 'http'},'args': {'show_env': '1'},'url': 'http: //httpbin.org/get?show_env=1'
}
?
3、帶header的get:
# -*- coding:utf-8 -*-import requests
import jsonhost = "http://httpbin.org/"
endpoint = "get"url = ''.join([host,endpoint])
headers = {"User-Agent":"test request headers"}r = requests.get(url)
r = requests.get(url,headers=headers)
#response = r.json()
print (eval(r.text))['headers']['User-Agent']
?輸出:
test request headers
?
4、同時帶參數和header:
# -*- coding:utf-8 -*-
import requests
import jsonhost = "http://httpbin.org/"
endpoint = "get"url = ''.join([host,endpoint])
headers = {"User-Agent":"test request headers"}
params = {"show_env":"1"}r = requests.get(url)
r = requests.get(url,headers=headers,params=params)#response = r.json()
print (eval(r.text))['headers']['User-Agent']
print r.url
輸出:
test request headers
http://httpbin.org/get?show_env=1
?