python介面自動化7 post檔案上傳

2021-10-01 16:29:18 字數 3536 閱讀 8971

檔案上傳在我們軟體是不可少的,最多的使用是體現在我們後台,當然我們前台也會有。但是了解過怎樣上傳檔案嗎?這篇我們以禪道文件-建立文件,上傳檔案為例。

post請求中的:content-type:multipart/form-data  這種型別便是上傳檔案。

1、pip install requests_toolbelt,post請求 multipart/form-data  型別

2、先抓下登入介面,因為先登入成功後才能上傳檔案。寫上登入**,讓其能正常登入。

import requests

s = requests.session()

login_url = '' # 登入url

login_r = s.post(login_url, params=data) # 傳 params 引數

r1 = s.get('') # 登入訪問的 html

2、操作上傳檔案(檔案我就上傳乙個桌面的:test.png),fiddler 切換至webforms就看得比較清楚了。

1、將抓包的介面寫下,順序:除錯登入、上傳、檢查點。

2、也需匯入模組from requests_toolbelt import multipartencoder

from requests_toolbelt import multipartencoder

import requests

# 登入

s = requests.session()

login_url = ''

login_r = s.post(login_url, params=data) # 傳 params 引數

# 斷言是否登入成功

r1 = s.get('')

if '產品主庫' in r1.content.decode('utf-8'):

print('登入成功')

else:print('登入失敗')

# 檔案上傳儲存

# 傳引數,name 對應 value,注意路徑的填寫。為空的一些引數不影響的去前提下可以刪除。

s_url = ''

body = multipartencoder(

fields=[

('lib', '1'),

('uid', '5dec436e32b85'),

('module', '0'),

('title', '我的乙個title'),

('type', 'text'),

('contenttype', 'html'),

('files', ('test.png', open('c:\\users\\administrator\\desktop\\test.png', 'rb'), 'image/png'))

])r2 = s.post(s_url, data=body, headers=) # content-type 自動獲取

# 檢查是否成功上傳

res = s.get('')

if '我的乙個title' in res.content.decode('utf-8'):

print('已上傳成功')

else:print('上傳失敗')

5、python控制台說「已上傳成功」,但是我們首次執行最好還是肉眼看一下有沒有問題。(下圖顯然沒有問題)

但說到這裡,不得不說這只是一次的測試請求,但是以後迭代,無數次回歸咋辦呢?這個問題和我們手工操作是一樣的,好比如你想title每次都一樣,但是只能存在一條資料。

python介面自動化7 引數關聯

前言 我們用自動化發帖之後,要想接著對這篇帖子操作,那就需要用引數關聯了,發帖之後會有乙個帖子的id,獲取到這個id,繼續操作傳這個帖子id就可以了 的登入機制已經變了,不能用賬號和密碼登入了,換個 或者用cookie登入吧 一 刪除草稿箱 1.我們前面講過登入後儲存草稿箱,那可以繼續接著操作 刪除...

python介面自動化7 引數關聯

前言 我們用自動化發帖之後,要想接著對這篇帖子操作,那就需要用引數關聯了,發帖之後會有乙個帖子的id,獲取到這個id,繼續操作傳這個帖子id就可以了 的登入機制已經變了,不能用賬號和密碼登入了,換個 或者用cookie登入吧 一 刪除草稿箱 1.我們前面講過登入後儲存草稿箱,那可以繼續接著操作 刪除...

Python 介面自動化

python環境搭建 第三方庫 requests安裝 pip install requests 網爛時可能安裝失敗,嗯 pip安裝第三方庫提示版本較低時需要更新pip的版本 命令 python m pip install upgrade pip 檢視安裝的第三方庫 pip list requests...