模塊安裝:pip install requests
用法講解:
1、基本的GET請求:
>>> r = requests.get("http://httpbin.org/get") >>> print(r.text)
2、帶參數的GET請求:
data = {'name':'test','page':'10'} >>> r = requests.get("http://httpbin.org/get",params=data) >>> print(r.text) "url": "http://httpbin.org/get?name=test&page=10"
3、解析json:
r = requests.get("http://httpbin.org/get") >>> dict1 = r.json() >>> dict1 {'args': {}, 'headers': {'Accept': '*/*', 'Accept-Encoding': 'gzip, deflate', 'Connection': 'close', 'Host': 'httpbin.org', 'User-Agent': 'python-requests/2.18.4'}, 'origin': '125.82.191.49', 'url': 'http://httpbin.org/get'}
4、獲取二進制數據:
r = requests.get("http://blog.51cto.com/favicon.ico") >>> with open('favicon.ico','wb') as f: f.write(r.content)
5、添加headers:
header = {'User-Agent':'Mozlila/5.0'} >>> r = requests.get("http://httpbin.org/get",headers=header) >>> print(r.text)
6、基本POST請求:
data = {'name':'text','age':'22'} >>> r = requests.post("http://httpbin.org/post",data=data) >>> print(r.text)
響應:reponse屬性
reponse.status_code:狀態碼
reponse.headers:http頭部信息
reponse.cookies:
reponse.url:
reponse.history:訪問的歷史記錄
狀態碼判斷:
r = requests.get("http://www.baidu.com") >>> if not r.status_code == 200: exit() else: print(r.text)
高級操作:
1、文件上傳:
files = {'file':open('1.jpg','rb')} r = requests.post('http://www.baidu.com',files=files)
2、會話維持:
s = requests.Session() s.get("http://www.baidu.com"
3、證書驗證:
r = requests.get('url',cart=('/path/server.crt','/path/key'))
4、代理設置:
proxies = { 'http':'http://127.0.0.1:19324', 'https':'https//127.0.0.1:19542' } >>> r = requests.get('http://www.baidu.com',proxies=proxies) 帶驗證的代理: proxies = { 'http':'http://user:[email protected]:19452' } r = requests.get('http://www.baidu.com',proxies=proxies) socks代理: 安裝模塊:pip3 install requests[socks] proxies = { 'http':'socks5://127.0.0.1:1222', 'https':'socks5://127.0.0.1:3222' } >>> r = requests.get('http://www.baidu.com',proxies=proxies)
5、超時設置:
r = requests.get(' = 1)
6、認證設置:
r = requests.get('url',auth=('user','123')) 或者是 from requests.auth import HTTPBasicAuth >>> r = requests.get('url',auth=HTTPBasicAuth('user','123'))