天天看點

python3 requests詳解_Python3 Requests庫詳解(學習筆記)

使用requests的相關方法操作

import requests

response = requests.get('https://www.baidu.com')

print(type(response))

print(response.status_code)

print(type(response.text))

print(response.cookies)

各種請求方式

帶參數的GET請求

import requests

print(response.text)

構造GET請求參數

import requests

data = {

'name':'gg',

'age':18

}

response = requests.get('http://httpbin.org/get",params = data)

print(response.text)

解析JSON

import requests

import json

response = requests.get('http://httpbin.org/get')

print(type(response.text))

print(response.json())

print(type(response.json()))

擷取二進制資料并寫入檔案

import requests

with open('d:\\favicon.ico','wb') as f:

f.write(response.content)

f.close()

帶有headers的POST請求

import requests

headers = {

'User-Agent':'Ruby'

}

data = {'name':'gg','age':'18'}

response = requests.post('http://httpbin.org/post',data=data,headers=headers)

print(response.text)

響應部分

response 屬性

response.status_code

response.headers

response.cookies

response.url

response.history

requests 的進階操作

檔案上傳

import reqeusts

files = {'file':open('d:\\favicon.ico','rb)}

response = requests.post('http://httpbin.org/post',files=files)

print(response.text)

擷取Cookie

import requests

response = requests.get('https://www.baidu.com')

print(response.cookies)

for key,value in response.cookies.items():

print(key + '=' + value)

會話維持 模拟登陸

使用session對象

import requests

s = requests.Session()

s.get('http://httpbin.org/cookies/set/number/123456789')

response = s.get('http://httpbin.org/cookies')

print(response.text)

證書驗證

requests打開https的時候,判斷證書是否是合法的,如果證書是非法的,那麼我們使用正常的方法是無法通路的

使用證書 使用指定證書和密鑰

import requests

response = requests.get('https://123456789.com,cert=('/path/server.crt','/path/key'))

print(requests.status_code)

有關于代理的使用

單一代理設定

import requests

proxies = {

}

response = requests.get('https://www.google.com',proxies=proxies)

print(response.status_code)

帶使用者名密碼的代理設定

import requests

proxies = {

'http':'http://username:[email protected]:9991'

}

response = requests.get('https://www.google.com',proxies=proxies)

print(response.status_code)

使用Socks代理

pip install requests[socks]

import requests

proxies = {

'http':'socks5://127.0.0.1:9992',

'https':'socks5://127.0.0.1:9992'

}

response = requests.get('https://www.google.com',proxies=proxies)

print(response.status_code)

認證設定

對于認證頁面,需要使用認證方式

設定認證值

import requests

from requests.auth import HTTPDigestAuth

r = requests.get('http://192.168.16.1',auth=HTTPDigestAuth('123456','123456'))

print(r.status_code)

異常處理

import requests

from requests.exceptions import ReadTimeout,HTTPError,RequestException

try:

response = requests.get('http://httpbin.org/get',timeout = 0.1)

print(response.status_code)

except ReadTimeout:

print('Time Out!!!')

except HTTPError:

print('HTTP Error!!!')

except RequestException:

print('Error!!!')