零基础手把手教你写NFT捡漏软

文章介绍了如何编写捡漏软件,通过分析特定网站的市场接口,获取价格排序后的商品信息。读者需理解HTTP请求、响应体中的JSON数据结构,以及如何依据数据状态(如status字段)和价格进行判断,实现自动化下单功能。网站提供了一个无加密的环境供学习者实践。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

想必大家都很想学习捡漏软件的编写,现在教大家捡漏软的逻辑,大家举一反三,相信大家可以写出优秀并且优秀的软件!!!

捡漏软逻辑解析

个人vx:http://wc.ljlju.cn/4ZGETK,有兴趣的小伙伴可以加入交流群一起学习交流。

老规矩,先上流程图

image-20230419002646489

先明白其原理,在进行操作,才能更加深入的了解软件该怎么写。

这次我们学习的网址:https://www.8dian.art/

首先,我们先获取一下查询市场接口

image-20230419002818321

点击价格排序,获取到市场接口,然后分析接口数据

请求URL:
https://www.8dian.art/api/nft-bcs/mark/getMarketDetailList

关键请求头:
Authorization: eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzI1NiJ9.eyJpc3MiOiJzaGlrb25nanV6aGVuIiwiZXhwIjoxNjgyNDg4MDI0LCJpYXQiOjE2ODE2MjQwMjQsInVzZXJJZCI6InVzZxxxxxxxxxDc3Mzh1c2VySWQiLCJ1c2VybmFtZSI6IjRkMWYwNzAyMWZjMDdhZWU2YmE0ZGE3OGIxZTE3YTVjIn0.zxeXPRBKm0uoRgN9eVgsp8957xxxxxxxxx
Content-Type: application/json
User-Agent: Mozilla/5.0 (iPhone; CPU iPhone OS 13_2_3 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/13.0.3 Mobile/15E148 Safari/604.1 Edg/112.0.0.0
username: 17777777777

请求体:
{"pageNo":1,"pageSize":2,"type":1,"goodsId":"150","priceOrder":1,"dateOrder":"","uuid":3301234}

pageNo:查询的页数
pageSize:查询的数量
goodsId:商品Id
priceOrder:按照价格排序
dateOrder: 日期排序
uuid:个人账号相关信息

响应体:
{
    "msg": "获取成功",
    "code": "200",
    "data": {
        "pageNo": 1,
        "pageSize": 2,
        "totalDataNum": 153,
        "totalPageNum": 8,
        "pageData": [
            {
                "id": 55466,
                "createAt": "2023-04-12 16:45:20",
                "isDeleted": null,
                "createUser": null,
                "createTime": null,
                "updateUser": null,
                "updateTime": "2023-04-16 23:32:59",
                "uuid": 1020224,
                "authName": null,
                "num": 1000,
                "userName": null,
                "headerImg": null,
                "sellId": 276900,
                "goodsId": 150,
                "isCollection": null,
                "content": null,
                "image": "https://8dian-app.oss-cn-hangzhou.aliyuncs.com/goods/2023-04-08/20230408111758.png",
                "name": "伙伴",
                "collectionNo": "#692/1000",
                "buyUuid": null,
                "buyUserName": null,
                "buyHeaderImg": null,
                "status": 1,
                "type": 1,
                "price": "10.00",
                "lowerPrice": null,
                "collectionNum": null,
                "charPrice": null,
                "lockNum": null,
                "isZhe": null,
                "integralNum": null,
                "energyNum": null,
                "circulationNum": null,
                "statusValue": null
            },
            {
                "id": 55393,
                "createAt": "2023-04-12 15:22:06",
                "isDeleted": null,
                "createUser": null,
                "createTime": null,
                "updateUser": null,
                "updateTime": "2023-04-12 15:42:04",
                "uuid": 5298105,
                "authName": null,
                "num": 1000,
                "userName": null,
                "headerImg": null,
                "sellId": 276950,
                "goodsId": 150,
                "isCollection": null,
                "content": null,
                "image": "https://8dian-app.oss-cn-hangzhou.aliyuncs.com/goods/2023-04-08/20230408111758.png",
                "name": "伙伴",
                "collectionNo": "#65/1000",
                "buyUuid": null,
                "buyUserName": null,
                "buyHeaderImg": null,
                "status": 1,
                "type": 1,
                "price": "10.00",
                "lowerPrice": null,
                "collectionNum": null,
                "charPrice": null,
                "lockNum": null,
                "isZhe": null,
                "integralNum": null,
                "energyNum": null,
                "circulationNum": null,
                "statusValue": null
            }
        ]
    },
    "ext": null
}

我们来解析下上面的参数,当我们抓取到市场列表数据后,接下来就是对数据进行分析,分析pageData里面的数据

image-20230419003441591

这里面的数据结构叫做JSON数组,[{},{},{}]是这样子类型的。然后{}加上里面包着的叫做JSON,是一种数据的格式,每个JSON里面都包含着对应商品的数据

image-20230419003849402

image-20230419004110834

实际的对应情况就是这个,那我们要编写捡漏软,按照下面流程编写即可。

  1. 查询市场、获取根据价格排序、获取前N条记录

  2. 循环遍历前N条数据,获取每个json中status字段的值

  3. 判断status==1

  4. 如果status==1,判断price(价格)是否<=我们设置的价格

  5. 价格符合条件,循环调用下单接口下单即可

这个就是捡漏软件的大致逻辑,下单接口按照上一篇文章的放大,自己手动去锁一单就能够获取到。这个网站没有加密,大家可以练练手。

<think>嗯,用户想用Python一个NFT捡漏锁单的脚本。首先,我需要理解用户的具体需求是什么。捡漏锁单应该是指监控NFT平台,当价格低于某个设定值时自动下单锁定,对吧?根据用户提供的引用,尤其是引用[2]和[3],他们可能需要自动化的工具来监控商品ID、设置目标价格,并在满足条件时发送请求。 首先,我得考虑如何实现HTTP请求。用户提到的引用[3]中有请求体的例子,里面包含pid和traceId。pid是商品ID,traceId看起来像UUID,可以随机生成。所以脚本需要构造这样的请求体,并发送POST请求。Python的requests库可以处理这个。 然后,用户提到需要定时监控价格。可能需要循环检查,或者使用定时任务。引用[2]中提到需要填目标价格、捡漏、线程等参,所以脚本可能需要参配置,比如目标价格、检查频率、重试次等。 另外,用户引用[4]提到了使用JavaScript获取页面元素,但Python脚本可能需要模拟浏览器操作或者直接调用API。根据引用[3],似乎平台有API接口,所以最好直接发送HTTP请求,而不是通过浏览器自动化,这样更高效。 接下来,如何处理商品ID?用户需要从页面获取,比如通过浏览器地址栏的product_details?id=16,提取pid=16。可能需要用户手动输入,或者编爬虫自动获取,但后者可能复杂,涉及页面解析,可能被反爬虫机制拦截。所以示例代码可能让用户手动输入商品ID。 关于锁单后的操作,比如支付密码,引用[2]中提到可以不填,或者用小号token。这可能涉及到身份验证,需要处理用户的登录态,比如使用cookie或token。脚本中需要包含如何携带这些认证信息发送请求。 然后,异常处理很重要。网络请求可能失败,需要重试机制。引用[2]中提到捡漏线程,可能涉及多线程或异步处理,但示例代码可能先单线程,避免复杂度。 用户可能需要示例代码结构:导入requests、配置参、循环请求、处理响应。比如一个while循环,定期发送请求检查价格,如果低于目标价就发送锁单请求。 还有,如何获取价格信息?可能需要先发送GET请求到商品详情API,解析返回的JSON获取当前价格。但用户提供的引用中没有具体API,所以示例可能需要假设存在这样的端点,或者需要用户自行查找。 此外,反反爬虫策略,比如设置请求头、使用代理、随机延迟等,避免被平台封IP。引用[3]提到traceId可以是随机UUID,所以每次请求生成不同的traceId可能有助于避免被检测。 最后,用户可能需要程指导,比如如何获取API接口、如何获取token、如何处理加密参等。但根据现有引用,可能只能提供基础框架,具体平台的逆向工程可能需要更多步骤,比如使用浏览器开发者工具抓包。 总结,示例代码应包括:发送HTTP请求、处理认证、构造请求体、循环监控、异常处理。同时,需要提醒用户法律和平台规则风险,遵守相关规定。</think>### 如何用PythonNFT捡漏锁单脚本 #### 核心实现逻辑 1. **HTTP请求模拟**:通过Python的`requests`库模拟浏览器请求,发送商品价格查询和锁单请求[^3][^4]。 2. **参配置**:需要目标商品ID(pid)、目标价格、请求头(含认证Token)[^2]。 3. **循环监控**:定时检查商品价格,触发锁单条件后发送请求。 4. **异常处理**:网络请求重试、平台反爬虫策略应对。 #### 示例代码框架 ```python import requests import time import uuid # 配置参 target_pid = "16" # 商品ID target_price = 100 # 目标价格 check_interval = 5 # 检查间隔(秒) api_url = "https://api.nft-platform.com/lock_order" headers = { "Authorization": "Bearer YOUR_TOKEN", # 替换为实际Token "Content-Type": "application/json" } def check_price(pid): """查询当前商品价格""" price_api = f"https://api.nft-platform.com/product_details?id={pid}" try: response = requests.get(price_api, headers=headers) if response.status_code == 200: return float(response.json()['price']) except Exception as e: print(f"价格查询失败: {str(e)}") return None def lock_order(pid): """发送锁单请求""" payload = { "pid": pid, "traceId": str(uuid.uuid4()) # 生成随机traceId } try: response = requests.post(api_url, json=payload, headers=headers) if response.status_code == 200: print("锁单成功!") return True except Exception as e: print(f"请求失败: {str(e)}") return False # 主监控循环 while True: current_price = check_price(target_pid) if current_price and current_price <= target_price: print(f"检测到目标价格 {current_price},尝试锁单...") if lock_order(target_pid): break # 锁单成功则终止 time.sleep(check_interval) ``` #### 关键实现步骤 1. **获取API接口**: - 使用浏览器开发者工具(F12)抓取价格查询和锁单请求的真实API地址 - 解析请求头中的认证信息(如Cookie/Token) 2. **反爬虫策略**: ```python headers = { "User-Agent": "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36", "Referer": "https://nft-platform.com/product_page" # 添加来源伪装 } ``` 3. **多线程优化**: ```python from concurrent.futures import ThreadPoolExecutor # 创建线程池执行并发请求 with ThreadPoolExecutor(max_workers=3) as executor: executor.submit(check_price, target_pid) ``` #### 注意事项 1. **法律合规性**:需遵守平台规则,避免高频请求触发风控 2. **账号安全**:不要硬编码敏感信息(如支付密码),建议使用环境变量[^2] 3. **请求频率**:建议设置`check_interval ≥ 3秒`避免封禁
评论 6
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

良匠

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值