天天看點

11_Python_請求庫_Requests的使用1.安裝Requests2.導入 Requests 子產品:3.發送請求4.為URL傳遞參數5.響應内容6.定制請求頭7.響應狀态碼8.響應頭9.Cookie10.逾時11.保持會話:Session()12.代理

目錄

  • 1.安裝Requests
  • 2.導入 Requests 子產品:
  • 3.發送請求
  • 4.為URL傳遞參數
  • 5.響應内容
    • 5.1 文本響應内容
    • 5.2 二進制響應内容
    • 5.3 JSON 響應内容
  • 6.定制請求頭
  • 7.響應狀态碼
  • 8.響應頭
  • 9.Cookie
  • 10.逾時
  • 11.保持會話:Session()
  • 12.代理

1.安裝Requests

pip install requests
           

2.導入 Requests 子產品:

import requests
           

3.發送請求

import requests

# 使用get的請求方式,嘗試擷取某個網頁。
response = requests.get('https://www.baidu.com/')

# 發送一個post請求
response = requests.post('http://httpbin.org/post', data={'key': 'value'})

# 其他 HTTP 請求類型:PUT,DELETE,HEAD 以及 OPTIONS
response = requests.put('http://httpbin.org/put', data={'key': 'value'})
response = requests.delete('http://httpbin.org/delete')
response = requests.head('http://httpbin.org/get')
response = requests.options('http://httpbin.org/get')
           

4.為URL傳遞參數

import requests

#為URL傳遞參數
payload = {'key1': 'value1', 'key2': 'value2'}
r = requests.get("http://httpbin.org/get", params=payload)

print(r.url)
#輸出内容:http://httpbin.org/get?key1=value1&key2=value2
           

5.響應内容

5.1 文本響應内容

import requests

# 文本響應内容
r = requests.get("https://www.baidu.com/")

print(r.text)
# 注意:
#   1.請求發出後,Requests會基于HTTP頭部對響應的編碼作出有根據的推測。
#   2.當你通路r.text 之時,Requests會使用其推測的文本編碼,傳回頁面内容。

# 使用 r.encoding 設定文本編碼格式:

print(r.encoding)
# 輸出内容:ISO-8859-1
r.encoding = 'ISO-8859-1'
           

5.2 二進制響應内容

import requests

# 二進制響應内容
r = requests.get("https://www.baidu.com/")
print(r.content)
           

5.3 JSON 響應内容

import requests

# JSON 響應内容
r = requests.get("https://api.github.com/events")
print(r.json())
           

6.定制請求頭

import requests

# 定制請求頭
url = 'https://www.baidu.com/'
headers  = {'User-Agent':'Mozilla/5.0 (Windows NT 6.1; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/67.0.3396.99 Safari/537.36'}

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

7.響應狀态碼

import requests

# 響應狀态碼
url = 'https://www.baidu.com/'
headers  = {'User-Agent':'Mozilla/5.0 (Windows NT 6.1; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/67.0.3396.99 Safari/537.36'}
r = requests.get(url, headers=headers)

#列印響應狀态碼
print(r.status_code)

#輸出内容:200
           

8.響應頭

import requests

# 響應頭
url = 'https://www.baidu.com/'
headers  = {'User-Agent':'Mozilla/5.0 (Windows NT 6.1; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/67.0.3396.99 Safari/537.36'}
r = requests.get(url, headers=headers)

#列印響應頭
print(r.headers)
#輸出内容:200

#擷取請求頭中的資訊
print(r.headers.get('Bdqid'))
#輸出内容:0xa44ddfe600007e3f
           

9.Cookie

import requests

# Cookie
url = 'https://www.baidu.com/'
r = requests.get(url)
#方法一:直接設定Cookie
r.cookies['Cookie_valves']

#方法二:使用字典傳入
cookies = {'Cookie':'Cookie_valves'}
cookies = dict(Cookie='Cookie_valves')

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

10.逾時

  • 通過給requests中的timeout傳入參數,設定的秒數時間之後停止等待響應。
import requests

# timeout 參數設定的秒數時間之後停止等待響應
url = 'https://www.baidu.com/'
r = requests.get(url,timeout = 5)
# 如果5秒内伺服器沒有回應我們的請求,就提示逾時的錯誤
           

11.保持會話:Session()

import requests

#  保持會話
s = requests.Session()
r = requests.get('https://www.baidu.com/')
           

12.代理

import requests

proxies = {
  "http": "http://10.10.1.10:3128",
  "https": "http://10.10.1.10:1080",
}

requests.get("http://example.org", proxies=proxies)
           

參考資料:

  • requests官方文檔【初級篇】
  • requests官方文檔【進階篇】

轉載于:https://www.cnblogs.com/jasontang369/p/9240897.html