当前位置: 首页 > article >正文

魔方财务批量拉取产品信息教程

使用魔方财务有时候经常上级【变化了ip】或者批量【补时间】什么的我们这里因为我们的财务换过域名导致上级无法给我们推送需要我们手动拉取信息一个两个还好几百个怎么办本教程就是【欧云服务器】专门给大家做的教程首先感谢极点云开发这个拉取工具的付出脚本是在我们电脑上执行的不是主控服务器相当于操控我们电脑帮我们执行多次更换ip的请求。1、安装python3.6或以上版本脚本要求我们电脑具备python3.6或以上版本。我们这里推荐3.10.11.访问python搜索安装即可https://www.python.org/downloads/windows/我们电脑上双击安装装好了 有个是否允许加长路径啥的要允许。2、电脑执行函数的安装2.1 在脚本所在文件夹右键打开终端2.2 只需要安装requests库使用pip安装只有第一次要安装后面跳过这一步pip install requests这里很多人装不上报错因为与win11的自带python冲突那就执行这个py -m pip install requests2.3 执行脚本假设你的脚本文件叫mfcw_laqu.py或者别的名字放在C:\Users\666\Downloads目录下方法一此时可以在 步骤2.1打开的终端 输入命令执行脚本py mfcw_laqu.py方法二因为你安装了python事实上你应该可以直接双击就能打开脚本文件然后跟着提示输入就行了3、token、cookie的获取方法打开并登陆魔方云后台然后按f12勾选保留日志然后刷新下页面找到如下文件特征其实很多文件都包含token\cookie的随便点点看有的话 就可以复制了都是一样的这个cookie也不是一直不变的魔方云每次登录都是不一样的但只要没有让你重新登陆就都是有效的python的代码如下可以创建个txt文件复制进去保存修改名字为.py结尾的就行了import requests import json import time import urllib3 # 禁用SSL警告 urllib3.disable_warnings(urllib3.exceptions.InsecureRequestWarning) class HostManager: def __init__(self, base_url, cookie, admin_path): self.base_url base_url.rstrip(/) self.admin_path admin_path self.cookies {PHPSESSID: cookie} self.session requests.Session() self.session.cookies.update(self.cookies) self.session.headers.update({ User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36, Accept: application/json, text/plain, */*, Content-Type: application/json;charsetUTF-8, Origin: base_url, Referer: f{base_url}/{admin_path}/, Sec-Fetch-Dest: empty, Sec-Fetch-Mode: cors, Sec-Fetch-Site: same-origin }) def get_host_ids(self, ip_segment, max_count1000): 根据IP段获取主机ID列表 Args: ip_segment: IP段如 1.1.1 max_count: 最大获取数量默认1000 Returns: list: 主机ID列表 request_time int(time.time() * 1000) # 构建请求URL url f{self.base_url}/{self.admin_path}/host/list params { queryConditions: ip, username: , uid: , page: 1, pagecount: max_count, order: id, sort: DESC, product_type: , server: , product: , payment: , billingcycle: , domainstatus: , domain: , ip: ip_segment, nextduedate: , request_time: request_time, languagesys: CN } try: print(f正在获取IP段 {ip_segment} 的主机列表...) response self.session.get(url, paramsparams, verifyFalse) response.raise_for_status() data response.json() if data.get(status) 200: host_list data.get(data, {}).get(list, []) ids [host.get(id) for host in host_list if host.get(id)] print(f✅ 成功获取 {len(ids)} 个主机ID) return ids else: print(f❌ 获取主机列表失败: {data}) return [] except Exception as e: print(f❌ 获取主机ID时发生错误: {e}) return [] def sync_host(self, host_id, delay0.1): 同步单个主机 Args: host_id: 主机ID delay: 请求间隔延迟秒避免请求过快 Returns: dict: 同步结果 request_time int(time.time() * 1000) url f{self.base_url}/{self.admin_path}/provision/default params { request_time: request_time, languagesys: CN } payload { id: host_id, func: sync } try: # 添加延迟避免请求过快 if delay 0: time.sleep(delay) response self.session.post( url, paramsparams, jsonpayload, verifyFalse ) response.raise_for_status() result response.json() return { host_id: host_id, status: result.get(status), data: result.get(data), message: result.get(message, ), success: result.get(status) 200 } except Exception as e: return { host_id: host_id, status: error, data: None, message: str(e), success: False } def batch_sync_hosts(self, ip_segment, max_count1000, delay0.1): 批量同步指定IP段的所有主机 Args: ip_segment: IP段 max_count: 最大主机数量 delay: 请求间隔秒 Returns: list: 所有同步结果 print(f\n 开始处理IP段: {ip_segment}) # 1. 获取主机ID列表 host_ids self.get_host_ids(ip_segment, max_count) if not host_ids: print(❌ 未找到任何主机ID程序结束) return [] print(f 找到 {len(host_ids)} 个主机开始同步...) # 2. 批量同步主机 results [] for i, host_id in enumerate(host_ids, 1): print(f 正在同步第 {i}/{len(host_ids)} 个主机 (ID: {host_id})) result self.sync_host(host_id, delay) results.append(result) # 输出当前结果 if result[success]: print(f ✅ 主机 {host_id} 同步成功: {result.get(message, 无返回消息)}) else: print(f ❌ 主机 {host_id} 同步失败: {result.get(message, 未知错误)}) # 3. 统计结果 success_count sum(1 for r in results if r[success]) failure_count len(results) - success_count print(f\n 同步完成) print(f✅ 成功: {success_count} 个) print(f❌ 失败: {failure_count} 个) return results def wait_for_exit(): 等待用户按键退出 print(\n *50) print(程序执行完毕) input(按Enter键退出...) def get_user_input(): 获取用户输入的所有配置参数 print( * 50) print( 主机批量同步工具) print( * 50) # 基础配置 base_url input(请输入基础URL (默认: https://www.baidu.com): ).strip() if not base_url: base_url http://baidu.com admin_path input(请输入后台路径 (默认: JD123): ).strip() if not admin_path: admin_path JD123 cookie input(请输入PHPSESSID Cookie: (不含phpsessid)).strip() if not cookie: print(❌ PHPSESSID 不能为空) return None # 查询参数 ip_segment input(请输入要查询的IP段 (例如: 1.1.1): ).strip() if not ip_segment: print(❌ IP段不能为空) return None try: max_count int(input(请输入最大获取数量 (默认1000): ) or 1000) delay float(input(请输入请求间隔秒数 (默认0.1): ) or 0.1) except ValueError: print(❌ 输入格式错误使用默认值) max_count 1000 delay 0.1 return { base_url: base_url, admin_path: admin_path, cookie: cookie, ip_segment: ip_segment, max_count: max_count, delay: delay } def main(): # 获取用户输入 config get_user_input() if not config: return # 创建管理器实例 manager HostManager( base_urlconfig[base_url], cookieconfig[cookie], admin_pathconfig[admin_path] ) # 执行批量同步 results manager.batch_sync_hosts( ip_segmentconfig[ip_segment], max_countconfig[max_count], delayconfig[delay] ) # 保存结果到文件 if results: timestamp int(time.time()) ip_segment_safe config[ip_segment].replace(., _) filename fsync_results_{ip_segment_safe}_{timestamp}.json with open(filename, w, encodingutf-8) as f: json.dump(results, f, ensure_asciiFalse, indent2) print(f\n 详细结果已保存到: {filename}) # 显示简要统计 success_ids [r[host_id] for r in results if r[success]] failed_ids [r[host_id] for r in results if not r[success]] if success_ids: print(f✅ 成功的主机ID: {success_ids}) if failed_ids: print(f❌ 失败的主机ID: {failed_ids}) wait_for_exit() if __name__ __main__: main()

相关文章:

魔方财务批量拉取产品信息教程

使用魔方财务,有时候经常上级【变化了ip】或者批量【补时间】什么的,我们这里因为我们的财务换过域名,导致上级无法给我们推送需要我们手动拉取信息,一个两个还好,几百个怎么办? 本教程就是【欧云服务器】…...

驾校招生断崖式下跌?这3个数据驱动的获客策略,让报名量翻倍

驾校招生断崖式下跌?这3个数据驱动的获客策略,让报名量翻倍最近和几位驾校校长聊天,听到最多的感慨是:“以前学员排队等车,现在教练排队等学员。”这不是个别现象。某地驾培协会数据显示,2023年区域性驾校平…...

基于单片机的婴儿看护系统设计

一、摘要 本课论文构思并实现了一种基于STM32F103C8T6单片机的智能婴儿看护系统婴儿看护系统,该系统致力于为婴儿提供全方位的监测与智能婴儿看护系统化的照护服务。它巧妙地融合了DHT11温湿度传感器、声音传感器以及液体传感器,这些传感器协同工作&…...

​Problem - 2148F - Codeforces​[字符串后缀排序]

Problem - 2148F - Codeforces 题意很简单 我们可以随意防止字符串 按照从上到下 如果最后一层某个位置没有字符串 那么上面的字符串就会掉下来到最后一层 求字典序最小的最下层的字符串 首先 最朴素的思想 我们会找出当前最小长度的字符串 长度k 然后截取所有字符串的…...

国产SeekWave 双频WIFI6+BT5.4 VS6621SR80基于RK3588平台成功替换RTL8822模组 硬件兼容 速率可达600Mbps

RK3588是瑞芯微(Rockchip)推出的旗舰级SoC芯片,采用8nm工艺,集成‌四核Cortex-A76和四核Cortex-A55 CPU、ARM Mali-G610 MP4 GPU、6 TOPS NPU‌,支持8K视频编解码。‌‌1‌‌2‌CPU‌:八核ARM架构&#xff…...

解锁论文写作新境界:书匠策AI——学术探索的智能导航灯

在学术的浩瀚海洋中,每一位研究者、学生乃至教育博主,都如同勇敢的航海家,驾驶着知识的船只,追寻着真理的彼岸。然而,论文写作这一航程中的关键环节,往往让许多人感到迷茫与挑战重重。今天,就让…...

GHelper终极指南:用轻量化工具彻底替代Armoury Crate,释放华硕ROG笔记本全部性能!

GHelper终极指南:用轻量化工具彻底替代Armoury Crate,释放华硕ROG笔记本全部性能! 【免费下载链接】g-helper Lightweight, open-source control tool for ASUS laptops and ROG Ally. Manage performance modes, fans, GPU, battery, and RG…...

c++入门:函数实参形参傻傻分不清?如何改变实参!

值传递是 C 中最基本的参数传递方式。它的核心意思是:当你把一个变量作为参数传给函数时,函数得到的是这个变量的一个副本,而不是变量本身。所以在函数内部修改这个副本,外部的原变量纹丝不动。📦 举个生活例子你把一张…...

ObsPy完整指南:如何用Python快速处理地震数据

ObsPy完整指南:如何用Python快速处理地震数据 【免费下载链接】obspy ObsPy: A Python Toolbox for seismology/seismological observatories. 项目地址: https://gitcode.com/gh_mirrors/ob/obspy ObsPy是一个专为地震学和地震观测站设计的Python工具库&…...

怎样评估数据化管理?数据化管理如何持续改进?

在数据这个行当工作了这么多年,我经常会和不同公司的朋友聊天。大家刚开始做数据化管理时总是干劲十足,买工具、建报表、做大屏。但一两年后,常常陷入一种困惑:钱花了,屏挂了,但感觉业务还是老样子。这时候…...

夸克扫码登录

kefu16665...

【FastAPI】 响应类型详解:从默认 JSON 到自定义响应

FastAPI 响应类型详解:从默认 JSON 到自定义响应(HTML/文件/流/重定向) 一、FastAPI 响应机制概述 FastAPI 默认会将路径操作函数返回的 Python 对象(如 dict、list、Pydantic Model)自动转换为 JSON 格式,…...

all-MiniLM-L6-v2详细步骤:Ollama模型量化部署(Q4_K_M)显存再降40%

all-MiniLM-L6-v2详细步骤:Ollama模型量化部署(Q4_K_M)显存再降40% 在资源受限的环境中部署高效的句子嵌入模型一直是开发者的痛点。all-MiniLM-L6-v2作为轻量级语义表示模型,虽然已经比标准BERT模型小了80%以上,但在…...

工程师必备:高效阅读Datasheet的实用技巧

1. 为什么工程师必须掌握Datasheet阅读能力在嵌入式系统和硬件开发领域,Datasheet(数据手册)就是芯片的"使用说明书"。我从业十余年,见过太多工程师因为不会正确阅读Datasheet而踩坑的案例。有一次团队花了两个月调试一…...

XZ8011双节8.4V充电芯片 输入电压8.9-15V

XZ8011是一款完整的双节锂离子电池恒压恒流充电管理芯片。采用ESOP8封装形式,外加很少的外部元件,使其成为便携应用的理想选择。 XZ8011通过外接电流检测电阻即可实现高精度的充电电流。其内部有热反馈电路可以对在充电过程中对芯片温度加以控制。充电截…...

全双工和半双工的区别

全双工和半双工是描述通信双方数据流动方向的两种基本模式,它们决定了通信链路的利用率、硬件复杂度和应用场景。下面从定义、工作机制、典型协议、优缺点、实际应用五个方面展开。一、基本定义模式英文数据传输方向比喻单工Simplex单向,只能A→B&#x…...

从火柴盒到AI:探索MENACE的数字化旅程

在计算机科学的历史中,有许多有趣的实验和发明,其中之一便是由唐纳德米奇(Donald Michie)设计的“火柴盒计算机”(Matchbox Educable Noughts and Crosses Engine,简称MENACE)。这个装置使用了火柴盒和彩色珠子来模拟人工智能,教机器玩井字游戏(Tic-Tac-Toe)。本文将…...

单线程 Redis 的高性能之道

引言Redis 以单线程模型处理网络请求与命令操作,却能在高并发场景下保持惊人的吞吐能力。这背后离不开三大基石:全内存存储、高效数据结构(哈希表、跳表等)以及 epoll 多路复用机制,让单线程能够高效处理海量连接。 随…...

解决Python SocketIO客户端连接问题

引言 在构建一个IT自动化系统时,管理多个电脑的需求日益增强。为了实现这一目标,我采用了以下技术栈: 前端:React 后端****中间层:NodeJS 终端代理:Python 然而,在使用Python实现SocketIO客户端时,我遇到了一个问题:Python客户端无法正常打印连接成功的消息。本文将详…...

无缝跨平台体验:APK-Installer让Windows运行Android应用的革命性工具

无缝跨平台体验:APK-Installer让Windows运行Android应用的革命性工具 【免费下载链接】APK-Installer An Android Application Installer for Windows 项目地址: https://gitcode.com/GitHub_Trending/ap/APK-Installer 在数字化时代,用户常常面临…...

清明节海报设计指南:4个要点打造高级感视觉呈现

每到清明临近,总有人为海报设计发愁。想做一张既体面又有格调的清明节海报,打开设计软件却不知从何下手,勉强拼凑出来的效果又总觉得差点意思。要么太过花哨显得不够庄重,要么过于简陋显得敷衍。其实高级感并不难,关键…...

文件夹的修改日期可以改吗?分享你三个修改方法

在电脑文件管理中,系统不支持直接修改文件夹的「修改时间」,但日常整理文件、统一项目时间戳、还原备份文件夹时间、办公归档时,经常需要自定义修改这个属性。本文给大家整理了3 种实用方法:第一种是汇帮批量重命名工具&#xff0…...

FreeRTOS 工程化要点:任务划分、优先级设计与 CPU 占用率监控

大家好,我是杂烩君。 今天我们来简单分享:FreeRTOS任务怎么拆、优先级怎么配、CPU 占用怎么看。1. 任务划分原则 1.1 单一职责:一个任务只干一件事 把"串口接收 数据解析 指令执行 结果反馈"全塞一个任务,解析环节一…...

网站设计:抓住这3点细节,用户体验感飙升!

网站制作要不要做得那么细呢?实际上,当我们发现很多网站制作得很优秀时,怎么看都不知道是如何做好的,但就是感觉不错,实际上这就体现在了制作网站细节上。很多时候设计网站往往容易忽视这三个细节:1、网页图…...

V821 DISP 显示驱动流程分析

文章目录1、前言2、环境介绍3、大致流程4、程序阅读5、总结1、前言 在全志 V821 下调试 RGB 屏幕时,因为一直创建不出 fb 节点,这里记录一下当时阅读显示驱动框架的过程。仅供参考。 2、环境介绍 sdk:V821 tina sdk v1.3 3、大致流程 初…...

实验室服务器远程访问终极方案:SSH 反向隧道 + systemd 自动重连

🚀 实验室服务器远程访问终极方案:SSH 反向隧道 systemd 自动重连适用于: 没有公网 IP 的实验室服务器想用 VSCode / SSH / Jupyter 远程开发希望稳定、自动重连、开机自启🧠 一、问题背景 在很多实验室环境中: GPU 服…...

赋能智能体大脑:在快马平台中集成AI模型实现高级对话能力

在探索AI辅助开发的过程中,我发现智能体的核心能力很大程度上取决于其"大脑"——也就是背后支撑决策的AI模型。最近在InsCode(快马)平台实践了一个很有意思的项目:如何为智能体集成AI模型来实现高级对话功能。整个过程让我深刻体会到&#xff…...

OpenClaw 局域网访问配置文档

OpenClaw 局域网访问配置文档 概述 本文档详细说明了如何配置 OpenClaw 以允许局域网内的其他设备访问,包括所有相关配置参数的作用和说明。 当前配置状态 网关服务信息 服务端口: 18789 绑定模式: lan (局域网访问) 认证方式: password (密码认证) 访问密码: xxxxxx 详细…...

Redis 内存淘汰与过期策略

引言Redis 作为内存数据库,内存资源有限,必须妥善处理内存占用问题。本文梳理两种核心机制:淘汰策略决定内存达到上限时如何移除数据,涵盖 noeviction、LRU、LFU 等多种算法及其实现细节;过期策略(惰性删除…...

高纯水系统如何保障锂电池生产良率?

在锂电池制造过程中,生产用水纯度直接关联产品性能与安全。随着新能源汽车与储能产业快速发展,行业对电池一致性与稳定性的要求持续提升,超纯水已成为核心制程环节的关键辅材。一、锂电池生产用水标准 锂电池生产涉及正负材料制备、浆料调配、…...