一起看看Python之Requests庫

  • 2019 年 10 月 4 日
  • 筆記

1

/ 寫在前面的話 /

今天資源君帶大家來看看Python的Requests庫,這個庫是基於urllib3所建立的,而且被人們稱為人性化的庫,因為它的程式碼量相比於urllib中的request少了一些,並且很容易上手。下面一起來看看!

2

/ Requests/

1.導入requests庫:

import requests

2.我們首先來講講requests庫裡面的兩種get請求方法:

-第一種:

# 使用get請求,  rsp = requests.get(url)

-第二種:

# 使用request請求  rsp1 = requests.request("get", url)

當然傳入的參數不僅僅只是url,還有params以一個字元串字典來提供這些參數,將字典中的參數發送到指定網頁,另外跟request一樣可以設置headers:

url = "http://www.baidu.com/s?"  kw = {      'wd': '熊貓'  }  headers = {      'User-Agent':          'Mozilla/5.0 (Windows NT 10.0; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/63.0.3239.132 Safari/537.36'  }  # 使用get請求,  rsp = requests.get(url, params=kw, headers=headers)

3.我們還可以通過requests讀取伺服器響應的內容

r = requests.get('https://api.github.com/events')  print(r.text)

列印內容,這裡有伺服器返回的各種各樣的參數(由於返回結果太多就不寫出來了)

4.再來講講requests的post

rsp = requests.post(url, data=data)

直接把想要post的數據放入一個字典中data,然後直接傳參就行了,這裡非常的簡潔

5.再來講講requests里的Cookie

-如果某個響應中包含一些 cookie,你可以快速訪問它們,返回的是一個cookiejar:

r = requests.get('https://api.github.com/events')  cookiejar = r.cookies  #可以將cookiejar轉化成字典格式  cookiedict =     requests.utils.dict_from_cookiejar(cookiejar)  

-要想發送你的cookies到伺服器,可以使用 cookies 參數:

r = requests.get(url, cookies=cookies)

cookie是一個字典格式,直接傳參發送

6.requests中的session

-模擬一次會話,從客戶端鏈接伺服器開始到客戶端瀏覽器斷開

-當我們跨請求時保持一些參數,比如在同一個session實例發出的所有請求之間保持cookie

# 創建session對象,可以保持cookie值  ss = requests.session()    headers = {'User-Agent':'xxxxxxxxxxxxxx'}    data = {'name' : 'xxx'}    # 此時由創建的session對象來管理髮出請求  ss.post("http://www.baidu.com", data=data, headers=headers)    rs = ss.get('xxxxxxxxxx')

7.requests中的代理proxy

proxy = {'http':'你的代理ip', 'https':'你的代理ip'}    rsp = requests.request('get','http://www.baidu.com', proxies=proxy)

-如果你的代理ip是買的,可能會有用戶驗證,這就會使用到HTTP basic Auth

# 格式    用戶名:密碼@代理地址:埠  proxy = {'http':'china:[email protected]:3006'}  rsp = requests.get("http://www.baidu.com", proxies=proxy)

-web客戶端驗證

如果遇到web客戶端驗證,需要添加auth=(用戶名,密碼)

auth = ("123","3333")  rsp = requests.get("http://www.baidu.com", auth=auth)