具体分析请求和返回参数,完全描述准确,DeepSeek 就能帮你生成准确的代码。
当然描述不是一下就可以描述准确,会经过多次修改,只到完全符合要求,DeepSeek 代码实现能力毋庸置疑。
DeepSeek提问需求:
写一个功能,get调用 headers中添加cookie参数,值为uid=xxxxx; token=d4xxxxxx414d7a,page参数从1循环执行到每次加1, 返回结果中data下有个data参数,对应的值是数组的,在每次返回结果中统计出model值, model为空或null时跳过,chi为1时不统计,type为1时不统计,若包含“ipad”或“iPad”的个数, 判断数组中结果tjtime值小于1733673600停止查询。
代码:
import requests
import time
from datetime import datetime
def count_special_ipad():
# 请求配置
headers = {
"Cookie": "uid=38; token=d4df3b9c-d306-4a9b-9a09-a46670414d7a",
"User-Agent": "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36"
}
# 时间阈值(2024-12-09 00:00:00 UTC)
stop_timestamp = int(datetime(2024, 12, 9).timestamp())
base_url = "https://xxxx.xxxx.cn/index/index/DevicelistPage"
page = 1
total_count = 0
stop_flag = False
while not stop_flag:
print(f"\n▶ 正在处理第 {page} 页 [累计:{total_count}]")
page_count = 0
try:
# 发送带重试机制的请求
response = requests.get(
base_url,
headers=headers,
params={"page": page, "zt": "all"},
timeout=10
)
response.raise_for_status()
# 解析嵌套数据结构
json_data = response.json()
device_list = json_data.get('data', {}).get('data', [])
if not isinstance(device_list, list):
print("⚠ 数据格式异常: data.data 不是数组")
break
# 遍历设备处理
for device in device_list:
# 停止条件检查(tjtime时间戳判断)
tjtime = device.get('tjtime')
if tjtime:
try:
if int(tjtime) < stop_timestamp:
print(f"🛑 触发停止条件: {datetime.fromtimestamp(int(tjtime))}")
stop_flag = True
break
except (ValueError, TypeError):
pass
# 过滤条件1:chi=1
if str(device.get('chi', '')).strip() in ['1', 1]:
continue
# 过滤条件2:type=1
if str(device.get('type', '')).strip() in ['1', 1]:
continue
# 过滤条件3:model有效性检查
model = str(device.get('model', '')).strip()
udid = str(device.get('udid', '')).strip()
if not model or model.lower() == 'null':
continue
# 核心匹配逻辑(不区分大小写)
if 'ipad' in model.lower():
page_count += 1
print(f"✅ 发现: {model[:100]} - {udid[:18]}... ")
total_count += page_count
print(f"第 {page} 页结果: +{page_count} 台")
# 翻页控制
page += 1
time.sleep(1)
except requests.HTTPError as e:
print(f"HTTP错误({e.response.status_code}): {e}")
break
except requests.RequestException as e:
print(f"网络异常: {str(e)}")
break
except Exception as e:
print(f"系统错误: {str(e)}")
break
print("\n" + "="*40)
print(f"扫描终止页数: {page-1}")
print(f"最终统计结果: {total_count} 台iPad设备(符合条件)")
print(f"停止时间阈值: {datetime.fromtimestamp(stop_timestamp).strftime('%Y-%m-%d %H:%M:%S')}")
if __name__ == "__main__":
count_special_ipad()执行结果:

PS:有这方面需要的老铁,可以找联系我。







