學習Python網路爬蟲之requests模塊

Python作為一門高效便捷的編程語言,有著廣泛的應用場景。其中,網路爬蟲是Python應用最為精彩、實用的一個方向。requests模塊可以說是網路爬蟲領域中的瑞士軍刀,它可以方便地操作HTTP請求和響應。本文將系統介紹requests模塊,讓讀者更深入地理解並實現Python網路爬蟲。

一、requests模塊介紹

requests模塊是Python中操作HTTP協議的第三方庫,封裝了HTTP請求、響應和URL處理等功能。它基於urllib3庫,具有更好的性能和易用性。

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

上述例子中,我們使用requests.get方法發起HTTP請求,get方法的參數為待獲取頁面的URL。並使用print列印出獲取到的HTML頁面源碼。這是一個簡單而直觀的使用requests模塊的方法。

二、requests的基本用法

1. 發送帶參數的GET請求

在實際應用中,我們會經常需要帶有參數的請求。requests模塊提供了params參數來方便地傳遞參數。params參數是字典類型,它會將請求參數自動轉換為url編碼格式添加到URL中。

import requests
response = requests.get('https://www.baidu.com/s', params={'wd': 'Python 爬蟲'})
print(response.url)

上述例子中,我們使用requests庫的get方法向百度搜索發出GET請求,帶上了一個wd參數,wd的值為Python 爬蟲。由於URL中使用的是百度搜索的方式,因此我們可以在返回結果的URL中看到,參數已經被自動編碼加入到URL中。最終我們可以得到搜索結果的HTML源代碼。

2. 發送POST請求

發送POST請求和GET請求類似,使用方法稍微有些不同。通過傳遞data參數,可以將請求體添加到POST請求中。

import requests
data = {'username': 'admin', 'password': '123456'}
response = requests.post('http://www.xxx.com/login', data=data)

上述例子中,我們向http://www.xxx.com/login發出POST請求,帶上了兩個參數,分別是username和password。這是一個模擬用戶登錄的例子。

3. 響應內容

requests模塊的response對象包含了響應內容的各種屬性,如HTTP狀態碼、響應時間、響應頭和響應體等等。

import requests
response = requests.get('https://www.baidu.com')
print(response.status_code)
print(response.headers)
print(response.content)
print(response.cookies)

這裡只列舉了一部分響應內容的屬性,也可以通過response.text獲得響應的文本內容。

4. 所有請求方法

requests模塊提供了各種請求方法。除了上文介紹的get和post方法,還有put、delete、head、options等等。

import requests
response1 = requests.put('http://httpbin.org/put', data={'key': 'value'})
response2 = requests.delete('http://httpbin.org/delete')
response3 = requests.head('http://httpbin.org/get')
response4 = requests.options('http://httpbin.org/get')

三、requests的進階用法

1. 添加請求頭

實際應用中,有時候需要在請求頭中添加一些信息來模擬瀏覽器訪問。requests模塊允許我們設置請求頭的參數。

import requests
headers = {
    'User-Agent': 'Mozilla/5.0 (Windows NT 6.1; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/58.0.3029.110 Safari/537.3'}
response = requests.get('https://www.baidu.com', headers=headers)

上述例子中,我們使用了User-Agent來模擬請求頭。User-Agent是一個特殊的請求頭,會告訴伺服器請求的客戶端信息。在這裡,我們使用Mozilla/5.0(Windows NT 6.1; Win64; x64)模擬Chrome瀏覽器。

2. 處理Cookie

requests模塊允許我們方便地處理Cookie信息。可以使用cookies參數來接收一個cookie字典。另外,requests模塊還提供了便捷的Session對象來幫助我們保存Cookie信息。

import requests
session = requests.Session()
session.post('http://httpbin.org/post', data={'key': 'value'})
response = session.get('http://httpbin.org/get')

上述例子中,我們使用Session對象來保存請求中的Cookie信息,並在下一次請求中保留下來。

3. 處理代理

代理伺服器是我們在爬取一些數據的時候常常會用到的一種方式。requests庫提供了proxies參數來實現代理請求。

import requests
proxies = {
    "http": "http://10.10.1.10:3128",
    "https": "http://10.10.1.10:1080",
}
response = requests.get("http://www.baidu.com", proxies=proxies)

上述例子中,我們使用了一個代理伺服器,連接到URL時會自動使用代理伺服器的地址和埠進行連接。

4. 使用SSL證書

requests模塊能夠自動地檢測和處理SSL證書問題。在某些情況下,我們可能需要手動指定證書文件。

import requests
response = requests.get('https://www.12306.cn', verify=False)
print(response.content.decode())

該例子中關鍵在於verify參數,如果不指定該參數或者值為True表示需要驗證SSL證書,requests會把證書驗證失敗視為錯誤,如果值為False則不檢查證書。在實際使用中,該參數不建議使用False,如需要指定本地證書,將該參數設置成證書路徑即可。

總結

以上就是requests模塊基本用法和進階用法的介紹。requests模塊作為Python爬蟲領域中的入門級別的第三方庫,具有易學、易用的優點,適合Python初學者快速入門。requests模塊完美地整合了HTTP請求和響應的各種功能,讓網路爬蟲開發更加便捷。

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

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

相關推薦

  • 如何查看Anaconda中Python路徑

    對Anaconda中Python路徑即conda環境的查看進行詳細的闡述。 一、使用命令行查看 1、在Windows系統中,可以使用命令提示符(cmd)或者Anaconda Pro…

    編程 2025-04-29
  • Python列表中負數的個數

    Python列表是一個有序的集合,可以存儲多個不同類型的元素。而負數是指小於0的整數。在Python列表中,我們想要找到負數的個數,可以通過以下幾個方面進行實現。 一、使用循環遍歷…

    編程 2025-04-29
  • Python計算陽曆日期對應周幾

    本文介紹如何通過Python計算任意陽曆日期對應周幾。 一、獲取日期 獲取日期可以通過Python內置的模塊datetime實現,示例代碼如下: from datetime imp…

    編程 2025-04-29
  • Python中引入上一級目錄中函數

    Python中經常需要調用其他文件夾中的模塊或函數,其中一個常見的操作是引入上一級目錄中的函數。在此,我們將從多個角度詳細解釋如何在Python中引入上一級目錄的函數。 一、加入環…

    編程 2025-04-29
  • Python周杰倫代碼用法介紹

    本文將從多個方面對Python周杰倫代碼進行詳細的闡述。 一、代碼介紹 from urllib.request import urlopen from bs4 import Bea…

    編程 2025-04-29
  • Python清華鏡像下載

    Python清華鏡像是一個高質量的Python開發資源鏡像站,提供了Python及其相關的開發工具、框架和文檔的下載服務。本文將從以下幾個方面對Python清華鏡像下載進行詳細的闡…

    編程 2025-04-29
  • 蝴蝶優化演算法Python版

    蝴蝶優化演算法是一種基於仿生學的優化演算法,模仿自然界中的蝴蝶進行搜索。它可以應用於多個領域的優化問題,包括數學優化、工程問題、機器學習等。本文將從多個方面對蝴蝶優化演算法Python版…

    編程 2025-04-29
  • Python程序需要編譯才能執行

    Python 被廣泛應用於數據分析、人工智慧、科學計算等領域,它的靈活性和簡單易學的性質使得越來越多的人喜歡使用 Python 進行編程。然而,在 Python 中程序執行的方式不…

    編程 2025-04-29
  • python強行終止程序快捷鍵

    本文將從多個方面對python強行終止程序快捷鍵進行詳細闡述,並提供相應代碼示例。 一、Ctrl+C快捷鍵 Ctrl+C快捷鍵是在終端中經常用來強行終止運行的程序。當你在終端中運行…

    編程 2025-04-29
  • Python字典去重複工具

    使用Python語言編寫字典去重複工具,可幫助用戶快速去重複。 一、字典去重複工具的需求 在使用Python編寫程序時,我們經常需要處理數據文件,其中包含了大量的重複數據。為了方便…

    編程 2025-04-29

發表回復

登錄後才能評論