复制
收藏
提问
简洁

怎么保存响应保存文件夹里一个响应一个文件import time import requests import json import datetime import threading import random import os import base64 import gzip import hashlib newest_version = "3.4.6" newest_version_mingzi = "小南梁" newest_version_yaoqing = "9" data_0=''' {"req":"V114","e":{"pi":"2","sk":"3","ui":"不用填"},"ev":1} ''' # 在这里修改保存的文件夹地址 output_dir = '/storage/emulated/0/0py号子' data_0= json.loads(data_0) #获取sk # 尝试从数据中获取'sk'键的值 sk_value = data_0.get('e', {}).get('sk') # 检查'sk'键是否存在 if sk_value : pi,sk,ui,= data_0["e"]["pi"], data_0["e"]["sk"], data_0["e"]["ui"] else: pi,sk,ui,= data_0["t"]["pi"], data_0["t"]["sk"], data_0["t"]["ui"] url = 'http://cloudpvz2android.ditwan.cn/index.php' headers = { 'User-Agent': 'Dalvik/2.1.0 (Linux; U; Android 13; 23013RK7C Build/TKQ1.220905.001)', 'Content-Type': 'multipart/form-data; boundary=_{{}}_', 'Connection': 'Keep-Alive', 'Accept-Encoding': 'gzip' } # 发送数据 def send(data): time.sleep(0.0) #如果锁ip就增加延迟 try: start_time = time.time() response = requests.post(url, headers=headers, data=data) end_time = time.time() # 记录请求结束时间 if response.status_code == 403: print("您可能已被拓维锁ip, 请开关飞行模式解除锁定") return "ip被锁" global latency_拓维 latency_拓维 = (end_time - start_time) * 1000 # 计算延迟, 并转换为毫秒 return response.text except RuntimeError: return "" # 在发送基础上,增加判断是否成功,并且自动输出拼接语句 def send_for_intent(data, intent): response = send(data) success = "\"r\":0" in response print(intent, "成功🎉" if success else "失败") return success, response data = {} for i in range (10000): data[f'号子{i}']= {"req":"V202","e":{"ci":"91","cv":"3.4.6.1540","di":"","head":{"appId":"109","appVersion":"1.0","channelId":"54","channelSdkVersion":"dj2.2-3.14.4.574","talkwebSdkVersion":"3.0.0"},"li":"786fa1bf3c20b7d68c4d83a9afbcd59d","oi":f"{i+99999}X241909023","pi":"","r":"1263479390","s":"3b769a92b0763b564a823246caa65a39","t":"241909023|e6f144a12d94c5d89b0e54297124f1f3|46619|20240708124004d1b0de932589d4bb3f55ffadb8605ec900d7a132e568738e|bdd8553dafb1d20b5a55a35fe130675e|80faf5d0832e49b54f4a672982c0d0d2|1721709615|4399","ui":""},"ev":1} def make_更新数据包(): if not os.path.exists(output_dir): os.makedirs(output_dir) for key, value in data.items(): file_path = os.path.join(output_dir, f"{key}.txt") content= json.dumps(value, separators=(',', ':'),ensure_ascii=False) with open(file_path, 'w', encoding='utf-8') as file: file.write(content) input("所有文件已保存完成,请手动加密整个文件夹'0py号子',该文件夹应该位于手机根目录下") def make_发送拼接提示(data_数据包, data_提示, file_path=None): # 如果file_path没有提供,则使用output_dir和data_数据包来构造文件名 if file_path is None: file_path = os.path.join(output_dir, f'{data_数据包}.txt') try: with open(file_path, 'r', encoding='utf-8') as file: data = file.read() suc, r = send_for_intent(data, data_提示) return suc, r except FileNotFoundError: print(f"没有找到文件:{file_path}") return False, None # 或者根据你的需求返回合适的值 except Exception as e: # 捕获其他可能的异常 print(f"读取文件时发生错误:{e}") return False, None # 或者根据你的需求返回合适的值 def make_号子(): c=0 for i in range(10000): suc,r=make_发送拼接提示(f'号子{i}',f'号子发送第{i+1}次') c=c+1 if suc else c if c ==10000: print("号子已完成") return print(response.text) def display_menu(): print(" ㅤ抓包后手动解密数据包,填入data_0,再运行本程序") print(" 先选择1更新数据包,再用DART或者其他软件加密手机根目录下的'0py邀请'文件夹,加密后再次运行本程序选择其他功能") print(" ㅤ 粒了 ") print(" ㅤ1:更新数据包") print(" ㅤ 2:号子") print(" ㅤq:退出") print(" ㅤㅤ请选择要执行的任务(可多选, 以空格分隔,按回车键执行):") def call_functions(choices): for choice in choices:

728c543f9
2个月前
全网
文档
学术
百科
知识库
时间不限
自动
回答简洁模式
深入研究一些

在您提供的代码中,您已经定义了一个函数 make_更新数据包() 来保存数据到文件中。这个函数遍历 data 字典,为每个键值对创建一个文件,并将相应的 JSON 数据写入到文件中。文件的保存路径由 output_dir 变量指定,并且每个文件的名称都是根据字典的键来命名的。

如果您想要在响应保存文件夹里为每个响应保存一个文件,您需要确保 make_更新数据包() 函数被正确调用,并且 data 字典中包含了您想要保存的所有响应数据。以下是一些可能的改进和注意事项:

  1. 确保 data 字典正确填充:在 make_更新数据包() 函数中,data 字典需要包含所有您想要保存的响应数据。您可以通过遍历某个列表或数据库查询来填充这个字典。

  2. 调用 make_更新数据包() 函数:在您的代码中,您需要在合适的地方调用 make_更新数据包() 函数来执行保存操作。例如,您可以在抓取或生成所有响应数据后调用这个函数。

  3. 处理文件保存权限:确保您的应用程序有足够的权限来写入指定的 output_dir 目录。在 Android 设备上,这可能需要请求存储权限。

  4. 异常处理:在 make_更新数据包() 函数中,您已经有了基本的异常处理来捕获文件操作中可能发生的错误。确保这些异常处理逻辑符合您的需求。

  5. 加密文件夹:根据您的代码注释,保存完成后需要手动加密文件夹。您可能需要提供一个用户界面提示或自动化脚本来执行这个加密过程。

  6. 多线程或异步处理:如果您的 make_号子() 函数或其他部分需要处理大量数据或网络请求,考虑使用多线程或异步请求来提高性能。

  7. 代码组织:您的代码中包含了多个函数和变量,考虑将它们组织到合适的类或模块中,以提高代码的可读性和可维护性。

  8. 用户输入:在 display_menu() 函数中,您使用了 input() 函数来获取用户输入。请确保这个函数在您的运行环境中有效,或者考虑使用其他方法来获取用户输入。

最后,确保您的代码在实际运行之前经过充分的测试,以避免在生产环境中出现意外的错误。如果您需要进一步的帮助或有特定的问题,请随时提问。

你觉得结果怎么样?
如何使用Python保存网络请求响应到文件?
Python中requests库如何发送POST请求?
Python中如何使用json模块处理JSON数据?
如何使用Python的os模块创建文件夹?
Python中如何遍历字典并保存键值对到文件?
Python多线程如何实现并发发送网络请求?

以上内容由AI搜集生成,仅供参考

在线客服