python爬蟲之urllib3的使用示例

2022-10-04 07:48:09 字數 3740 閱讀 1089

urllib3是乙個功能強大,條理清晰,用於http客戶端的python庫。許多python的原生系統已經開始使用urllib3。urllib3提供了很多python標準庫urllib裡所沒有的重要特性:

一、get請求

urllib3主要使用連線池進行網路請求的訪問,所以訪問之前我們需要建立乙個連線池物件,如下所示:

帶引數的get

經檢視原始碼:

def re程式設計客棧quest(self, method, url, fields=none, headers=none, **urlopen_kw):

request請求的返回值是

我們可以通過dir()檢視其所有的屬性和方法。

dir(r)

直擷取了一部分

#'data', 'decode_content', 'enforce_content_length', 'fileno', 程式設計客棧'flush', 'from_httplib',

# 'get_redirect_location', 'getheader', 'getheaders', 'headers', 'info', 'isatty',

# 'length_remaining', 'read', 'read_chunked', 'readable', 'readinto', 'readline',

# 'readlines', 'reason', 'release_conn', 'retries', 'seek', 'seekable', 'status',

# 'stream', 'strict', 'supports_chunked_reads', 'tell', 'truncate', 'version', 'writable',

# 'writelines']

二、post請求

可以看到很簡單,只是第乙個引數get換成了post。

並且引數不需要再像urllib一樣轉換成byte型了。

三、設定headers

四、設定**

import urllib3

url = ""

headers =

proxy = urllib3.proxymanager('',headers = headers)

r = proxy.request('get',url+"/ip")

print(r.data.decode())

五、當請求的引數為json

在發起請求時,可以通過定義body 引數並定義headers的content-type引數來傳送乙個已經過編譯的json資料

六、上傳檔案

#元組形式

#二進位制形式

七、超時設定

# 1全域性設定超時

# 2在request裡設定

八、重試和重定向

import urllib3

http =程式設計客棧 urllib3.poolmanager()

#重試r = http.request('post','/post',retries = 5) #請求重試測次數為5次 ,預設為3ci

print(r.retries) #retry(total=5, connect=none, read=none, redirect=0, status=none)

#關閉重試

http.request('post','/post',retries = false) #請求重試測次數為5次 ,預設為3ci

#302不是異常

九、urllib3 本身設定了https的處理,但是有警告

雖然可以請求,但是報如下警告:

禁用警告:

import urllib3

urllib3.disable_warnings() #禁用各種警告

urllib3很強大,但是並沒有requests好用。了解為主。

本文標題: python爬蟲之urllib3的使用示例

本文位址: /jiaoben/python/232442.html

python爬蟲之urllib 二

urllib.error可以接收urllib.request產生的異常,urllib.error有三個方法,如下 urlerror是oserror的乙個子類,httperror是urlerror的乙個子類,伺服器上http的響應會返回乙個狀態碼,根據這個http狀態碼,我們可以知道我們的訪問是否成功...

python爬蟲之urllib 四

每個 都會定義robots.txt 檔案,這個檔案可以告訴網路爬蟲爬取該 時存在哪些限制。作為良好網民以及其他人利益,一般上遵從這些限制。如何檢視這個檔案?可以通過在目標 站點或網域名稱後面加上 robots.txt 進行訪問。例如 目標 站點 的 robots.txt 檔案就是 robots.tx...

Python爬蟲之urllib模組2

python爬蟲之urllib模組2 pg 55,乙個待畢業待就業的二流大學生。看了一下上一節的反饋,有些同學認為這個沒什麼意義,也有的同學覺得太簡單,關於 beautifulsoup 和lxml 獲取後面的鏈結我們能不能如法炮製呢,我們先來試試。我們把 寫成下面那樣 然後我們現在來試試 結果我們發...