栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > Python

python模仿登录下载Jenkins包代码更新

Python 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

python模仿登录下载Jenkins包代码更新

上次以我菜鸡的水平拼了一个下载安装包的脚本,能用所学让工作更方便心里爽歪歪。

谁知道环境更新了,Jenkins版本从​ 2.263.3​ 更新为 2.303.3脚本不好使了。

报错误代码:403。打印一下内容提示:

r=session.post(login_url,data=user, headers=headers)
print(r.text)

#显示一串html主要就是 “Authentication required ”然后跳转到登陆页。

百度之,身份认证 — Requests 2.18.1 文档 (python-requests.org) 官方文档提示,需要加auth参数。

>>> requests.get('https://api.github.com/user', auth=('user', 'pass'))

于是改为

r=session.post(login_url, auth=('xxxx', 'xxxxx'),data=user, headers=headers)
print(r.text)

 #显示很长的html,看来是可以了。

心得“多查多试”。

后面之前的代码又加了一个进度条。代码贴出来有用的可以拿去。

# -*- coding: utf-8 -*-
import requests
import time
headers={
    "Host":"192.168.1.xxx:xxxx",
    'Referer':'192.168.1.xxxx:xxxx/login?from=%2F',
    'User-agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/96.0.4664.110 Safari/537.36',
}

login_url = "http://192.168.1.xxx:xxxx/j_spring_security_check"
user =  {
    "j_username": "xxxx",
    "j_password": "xxxxxxxxx",
    "from": "/",
    "Submit": "登录"
}
session = requests.session()
sss=session.post(login_url,auth=('xxxx', 'xxxxxxxxxx'),data=user, headers=headers)
url='http://192.168.1.xxx:xxxx/job/app-xxxxx-v0000/lastSuccessfulBuild/artifact/app/build/outputs/apk/v0000/debug/app-v0000-debug.apk'
'''resp = session.get(url, stream = True)
with open('app-v0000-debug.apk','wb') as f:
    f.write(resp.content)'''	

start = time.time() #下载开始时间
response = session.get(url,auth=('xxxx','xxxxxxxxxx'), stream=True) #stream=True必须写上
size = 0 #初始化已下载大小
chunk_size = 1024 # 每次下载的数据大小
content_size = int(response.headers['content-length']) # 下载文件总大小
try:
    if response.status_code == 200: #判断是否响应成功
        print('开始下载,[文件大小]:{size:.2f} MB'.format(size = content_size / chunk_size /1024)) #开始下载,显示下载文件大小
        with open('app-v0000-debug.apk','wb') as file: #显示进度条  filepath = path+'name.extension name' #设置图片name,注:必须加上扩展名
            for data in response.iter_content(chunk_size = chunk_size):
                file.write(data)
                size +=len(data)
                print('r'+'[下载进度]:%s%.2f%%' % ('■'*int(size*50/ content_size), float(size / content_size * 100)) ,end=' ')
        end = time.time() #下载结束时间
        print('n下载完成!,用时: %.2f秒' % (end - start)) #输出下载用时时间
    else:
        print(response.status_code)
except:
    print('服务器没响应!!!')

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/689241.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号