↵
最近帮别人写个小需求,需要本地自动化截图,然后图片自动化上传到又拍云,实现自动截图非常简单,在这里就不详细介绍了,主要和大家写下,如何通过Python+requests实现上传本地图片到又拍云服务器。
话不多说,因为我们要使用requests库实现图片上传接口自动化,那么第一步就需要进行按照requests。
一、安装:
pip install requests
二、开码:
1、因为要上传图片,所以我们得先登录又拍云,拿到cookies,登录接口实现代码如下:
def getCookies(self,username,password):
url = "https://console.upyun.com/accounts/signin/"
headers = {
'User-Agent': 'Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/63.0.3239.132 Safari/537.36',
'Content-Type': 'application/x-www-form-urlencoded',
'Accept': 'application/json, text/plain, */*',
'Referer': 'https://console.upyun.com/login/',
'Accept - Encoding': 'gzip, deflate, br',
'Accept - Language': 'zh - CN, zh;q = 0.9'
}
body = {
'password': password,
'username': username
}
requests.packages.urllib3.disable_warnings()
r = requests.post(url, data=body, headers=headers, verify=False)
cookies = r.cookies
return cookies
2、此时我们就可以调用登录接口拿到cookies,从而就可以直接掉上传图片接口传图片了。
cookies = getCookies("zhangsan","123qwe")
headersUpload = {
'User-Agent': 'Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/63.0.3239.132 Safari/537.36',
'Accept': 'application/json, text/plain, */*',
'Referer': 'https://console.upyun.com/services/adver/filemanage/',
'Accept - Encoding': 'gzip, deflate, br',
'x-file-size': '209482',
'Content-Length': '209663',
'Accept - Language': 'zh - CN, zh;q = 0.9'
}
files = {"file": (filename, open(picPath+filename, "rb"), "image/png")}
requests.packages.urllib3.disable_warnings()
try:
r = requests.put(
"https://console.upyun.com/folder/projectA/test//"+filename, files=files, headers=headersUpload,
cookies=cookies, verify=False)
except BaseException as e:
print("上传图片失败!",str(e))
最后作为一位过来人也是希望大家少走一些弯路,在这里我给大家分享一些软件测试的学习资料和我花了3个月整理的软件测试自学全栈,这些资料希望能给你前进的路上带来帮助。
视频文档获取方式:
这份文档和视频资料,对于想从事【软件测试】的朋友来说应该是最全面最完整的备战仓库,这个仓库也陪伴我走过了最艰难的路程,希望也能帮助到你!以上均可以分享,点下方小卡片即可自行领取。