日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

网络库urillib3

發布時間:2025/3/19 编程问答 15 豆豆
生活随笔 收集整理的這篇文章主要介紹了 网络库urillib3 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

urillib3

  • 發送HTTP GET請求
  • 上傳文件

發送HTTP GET請求

使用urlib3中的API向服務端發送HITP請求,

  • 首先需要引用untilib3模塊。
  • 然后創建PoolManager類的實例,該類用于管理連接池。
  • 最后就可以通過request方法發送GET請求了,
  • equest方法的返回值就是服務端的響應結果,通過database lots可以獲得服務端的響應數據。

request方法的返回值就是服務端的響應結果,通過data屬性可以直接獲得服務端的響應數據。

當向服務端發送HITPGET請求時,如果請求字段值包含中文、空格等字符,需要對其進行編碼。

使用request方法發送HTTPGET請求時,可以使用unlencodee函數對GET字段進行編碼,也可以直接使用fields關鍵字參數指定字典形式的GET請求字段。

使用這種方式,request方法會自動對fields關鍵字參數指定的GET請求字段進行編碼。

# http 是PoolManager 類的實例變量 http.request('GET',url,fields={'wd':'爬蟲代碼'})

代碼:

from urllib3 import *# 調用 disable_warnings()函數可以阻止顯示警告信息 disable_warnings() #創建PoolManager 實例 http = PoolManager()url = 'https://www.baidu.com/s' response = http.request('GET',url,fields={'wd':'爬蟲代碼'}) #獲取百度服務器的返回值(字節形式),并使用UTF-8格式對其進行解碼 data = response.data.decode('UTF-8') #輸出百度服務器返回的內容 print(data)

上傳文件

客戶端瀏覽器向服務端發送HTTP請求時有一類特殊的請求,就是上傳文件,為什么特殊呢?

因為發送其他值時,是以字節為單位的,而上傳文件時,可能是以KB或MB為單位的,所以發送的文件尺寸通常比較大,因此上傳的文件內容會用
multipart/form?data格式進行編碼,然后再上傳。

urlib3對文件上傳有很好的支持。只需設置普通的HTTP請求頭一樣在request方法中使用fields關鍵字參數指定一個描述上傳文件的HTTP請求頭字段,然后再通過元組指定相關屬性即可,例如,上傳文件名,文件類型等。

先用Flask實現一個可以接收上傳文件的服務端程序,該程序從客戶端獲取上傳的文件的內容,并將上傳文件名保存到當前的uploads之目錄中。
代碼:

import os from flask import Flask,request # 定義服務器保存上傳文件的位置 UPLOAD_FOLDER = 'uploads'app = Flask(__name__)@app.route('/',methods=['POST'])def upload_file():#獲取上傳的文件內容file = request.files['file']if file :#將文件保存到子目錄中file.save(os.path.join(UPLOAD_FOLDER,os.path.basename(file.filename)))return '文件上轉成功!'if __name__ == '__main__':app.run(debug=True)

客戶端程序:

from urllib3 import *# 調用 disable_warnins 函數可以阻止顯示警告信息disable_warnings() #創建PoolManager 實例 http = PoolManager() #定義上傳文件的服務器URL url = 'http://127.0.0.1:5000/' while True:#輸入上傳文件的名字filename = input('請輸入要上傳的文件名(必須在當前目錄下)')if not filename:break#用二進制方式打開,然后讀取所有內容with open(filename,'rb') as fp:fileData = fp.read()#上傳文件response = http.request('POST',url,fields={'file':(filename,fileData)})print(response.data.decode('utf-8'))

不了解 Flask的可以看下這幾篇博客:

  • FastAPI ------框架基礎
  • python前端學習-----Flask進階
  • Flask實戰----做了一個簡易版CSDN

總結

以上是生活随笔為你收集整理的网络库urillib3的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。