深入理解requests中文文檔

一、發送HTTP請求

使用requests庫,發送HTTP請求更加簡單方便。你僅需向requests.get() 方法傳入URL參數即可得到返回的response對象。


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

代碼中的requests.get()方法用於發送HTTP GET請求,返回response對象,該對象包含了伺服器響應的內容信息和狀態碼等。運行上述代碼,響應結果將會是百度首頁的HTML文檔。

當然,requests庫也提供了其他幾種發送HTTP請求的方法,比如requests.post(), requests.put(), requests.delete()等,你可以根據不同的業務需求選擇不同的發送方式。

二、傳遞URL參數

有時我們需要在請求URL中傳遞一些參數信息,比如說進行搜索。requests提供params參數來傳遞這些信息。


import requests
payload = {'q': 'python'}
response = requests.get('https://www.baidu.com/s', params=payload)
print(response.url)

在上面的代碼中,我們使用了params參數,傳遞了一個名叫「q」的參數。它會在URL中加上「?q=python」這部分參數,即搜索關鍵詞為「python」。

該代碼運行結果將會是:https://www.baidu.com/s?q=python

三、定製請求頭

有些網站可能會根據請求頭信息,返回不同的響應內容,所以我們需要在請求頭中添加一些自定義的信息。requests提供了headers參數來傳遞這些信息。


import requests
headers = {'user-agent': 'Mozilla/5.0'}
response = requests.get('https://www.baidu.com/', headers=headers)
print(response.text)

在上面的代碼中,我們使用了headers參數,傳遞了User-Agent信息。這個信息通常用來告訴伺服器客戶端的類型,版本以及操作系統等信息。該代碼運行結果將會是百度首頁的HTML文檔。

四、響應內容

requests返回的response對象中包含了很多有用的響應信息, 可以使用text屬性獲得響應的內容。如果響應內容是二進位類型,可以使用content屬性。


import requests
response = requests.get('https://www.baidu.com/img/bd_logo1.png')
print(response.content)

在上面的代碼中,我們使用了content屬性獲取百度首頁Logo的二進位數據,並且可以使用二進位寫入模式將它們寫入到本地的文件中。

五、Cookies

網路爬蟲通常需要保存登錄會話信息, requests提供了cookies參數來管理請求中的cookies。


import requests
cookies = dict(username='kate', password='123456')
response1 = requests.post('http://example.com/login', data=cookies)
response2 = requests.get('http://example.com/myaccount', cookies=response1.cookies)

在上面的代碼中,我們使用了cookies參數,傳遞用戶名和密碼信息,發送POST請求,返回的response對象中的cookies信息包含了登錄會話信息。可以基於這些cookie信息,發送GET請求來訪問私人賬戶頁面。

六、會話對象

為了保持持續的會話狀態,requests提供了Session對象,它讓我們可以在多個請求之間共享cookies信息。


import requests
session = requests.Session()
session.get('http://example.com/login', params={'username':'kate', 'password':'123456'})
session.get('http://example.com/myaccount')

在上面的代碼中,我們使用Session對象,創建了一個會話。發送GET請求時,將用戶名和密碼信息添加到URL中作為參數。Session對象會自動管理cookies信息,這樣就可以在第二個GET請求中訪問私人賬戶頁面。

七、上傳文件

使用requests提交表單數據和上傳文件也很簡單。


import requests
files = {'avatar': open('avatar.jpg', 'rb')}
response = requests.post('http://example.com/profile', files=files)

在上面的代碼中,我們使用調用open()函數來打開文件。然後使用files參數傳遞二進位文件數據到POST請求中。

八、SSL驗證

當請求HTTPS地址時,requests默認會檢查伺服器證書是否有效。你可以使用verify參數來有選擇地關閉SSL驗證。


import requests
response = requests.get('https://github.com', verify=False)
print(response.text)

在上面的代碼中,我們使用verify參數,禁止了SSL驗證。如果伺服器證書是無效的,requests會拋出一個SecurityWarning異常。

原創文章,作者:小藍,如若轉載,請註明出處:https://www.506064.com/zh-tw/n/160917.html

(0)
打賞 微信掃一掃 微信掃一掃 支付寶掃一掃 支付寶掃一掃
小藍的頭像小藍
上一篇 2024-11-21 01:16
下一篇 2024-11-21 01:16

相關推薦

  • 使用Spire.PDF進行PDF文檔處理

    Spire.PDF是一款C#的PDF庫,它可以幫助開發者快速、簡便地處理PDF文檔。本篇文章將會介紹Spire.PDF庫的一些基本用法和常見功能。 一、PDF文檔創建 創建PDF文…

    編程 2025-04-29
  • Python讀取中文

    Python是一種高級編程語言,被廣泛地應用於各種領域中。而處理中文數據也是其中重要的一部分。本文將介紹在Python中如何讀取中文,為大家提供指導和幫助。 一、讀取中文文件 在P…

    編程 2025-04-29
  • jQuery Datatable分頁中文

    jQuery Datatable是一個非常流行的數據表插件,它可以幫助您快速地在頁面上創建搜索、過濾、排序和分頁的數據表格。不過,它的默認設置是英文的,今天我們就來探討如何將jQu…

    編程 2025-04-29
  • Python計算中文字元個數

    本文將從多個方面對Python計算中文字元個數進行詳細的闡述,包括字元串長度計算、正則表達式統計和模塊使用方法等內容。 一、字元串長度計算 在Python中,計算字元串長度是非常容…

    編程 2025-04-29
  • Python3亂碼轉中文

    本文將詳細介紹如何轉換Python3中的亂碼為中文字元,幫助Python3開發工程師更好的處理中文字元的問題。 一、Python3中文亂碼的原因 在Python3中,中文字元使用的…

    編程 2025-04-29
  • Python爬蟲文檔報告

    本文將從多個方面介紹Python爬蟲文檔的相關內容,包括:爬蟲基礎知識、爬蟲框架及常用庫、爬蟲實戰等。 一、爬蟲基礎知識 1、爬蟲的定義: 爬蟲是一種自動化程序,通過模擬人的行為在…

    編程 2025-04-28
  • 從16進位轉義到中文字元

    16進位轉義是為了在不同的字符集、不同的編碼下,能夠保證特殊字元被正確的識別和渲染。本文將從多個方面對16進位轉義做詳細的闡述,讓讀者對其有更深入的了解。 一、轉義實現 在Web開…

    編程 2025-04-28
  • opendistroforelasticsearch-kibana的中文應用

    本文將介紹opendistroforelasticsearch-kibana在中文應用中的使用方法和注意事項。 一、安裝及配置 1、安裝opendistroforelasticse…

    編程 2025-04-28
  • Python生成PDF文檔

    Python是一門廣泛使用的高級編程語言,它可以應用於各種領域,包括Web開發、數據分析、人工智慧等。在這些領域的應用中,有很多需要生成PDF文檔的需求。Python有很多第三方庫…

    編程 2025-04-28
  • Python IDLE如何設置中文運行環境

    Python IDLE是Python的集成開發環境,使用它可以方便地編寫、調試和執行Python程序。但是,默認情況下Python IDLE的運行環境是英文環境,如果需要在Pyth…

    編程 2025-04-27

發表回復

登錄後才能評論