requests模塊的簡單使用

簡單介紹

簡單來說,requests就是一個可以模擬發送請求的庫。
安裝方法:

pip install requests

幫助文檔:
http://2.python-requests.org/zh_CN/latest/user/quickstart.html

使用方法

直接調用requests模塊的get方法就可以發送get請求。返回值爲一個Response對象

import requests

url = 'http://www.baidu.com'
response = requests.get(url)
print(response)
# <Response [200]>

Response對象以及函數屬性介紹:

  1. content:響應內容,爲字節類型可使用decode('utf-8')來轉化爲指定編碼的字符串
  2. text:由python自動猜測的編碼,類型爲字符串
  3. json():用於返回值爲json的情況,類型爲字典類型。使用此函數就不用再使用第三方的json解析器
  4. headers:響應頭
  5. request:該響應的請求對象

發送請求函數get參數解釋:

  1. auth:用於網站權限認證,一般用於內網中
  2. headers:自定義請求頭
  3. cookies:設置請求的cookie,也可以在請求頭中添加cookie字段

自動保存cookie:當我們有時候發請求的時候需要用到上一個請求返回的cookie的時候,我們可以在發送請求的時候以參數的形式帶上cookie,也可以使用session對象:

res = requests.get(url1)
res2 = requests.get(url2, cookies=res.cookies)
res = requests.get(url1)
session = requests.session()
session.get(url2)
  1. verify:對於HTTPS,默認情況下啓用SSL驗證,當使用requests模塊直接訪問的時候會發生如下錯誤:
requests.exceptions.SSLError: ("bad handshake: Error([('SSL routines', 'tls_process_server_certificate', 'certificate verify failed')],)",)

只需在發送請求的時候將verify參數設置爲False即可

requests.post(url, data=form_data, verify=False)

requests模塊提供自動轉義功能,我們在URL或者參數中書寫的中文都會自動轉義,例如https://www.baidu.com/s?wd=爬蟲

參數傳遞:

  1. 在get請求中,參數可以直接在URL後面,也可以只用params參數來傳遞
  2. post請求可以使用data(字典類型)參數,也可以使用json(字符串類型)參數

示例代碼:

import requests

# 自定義請求頭
headers = {
    'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:71.0) Gecko/20100101 Firefox/71.0'
}
# 設置代理 ,獲取代理ip:https://www.kuaidaili.com/free/
proxies = {
    'http': 'http://124.239.216.14:8060'
}
# get請求參數,中文自動轉義
params = {}
# post請求參數,使用data傳遞的時候,參數類型爲字典類型;使用json的時候,參數爲字符串類型
form_data = {
    'name': 'value'
}
form_json = "{'name':'value'}"
url = 'http://www.baidu.com'
response = requests.get(url=url, headers=headers, params=params, proxies=proxies)
# 使用session保存cookies
session = requests.session()
session.post(url, data=form_data, json=form_json, verify=False)
# python猜測編碼之後的字符串
print(response.text)
# 請求返回的內容,爲字節類型,可調用decode('utf-8')方法來轉換爲字符串
print(response.content)
# 請求頭
print(response.request.headers)
# 響應頭
print(response.headers)
# 狀態碼
print(response.status_code)
# 請求的cookie
print(response.request._cookies)
# 響應的cookie
print(response.cookies)
# 請求的URL
print(response.url)
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章