通过OpenSea API获取某一账户的NFT数据

import json
import time
import requests

def account_nfts(account_address, api_key):
    # 初始API接口URL(包含next参数)
    url = f"https://api.opensea.io/v2/chain/ethereum/account/{account_address}/nfts?limit=50"
    # 总的nft数量
    total_count = 0

    headers = {
        "accept": "application/json",
        "X-API-KEY": api_key
    }


    while url:
        response = requests.get(url, headers=headers)

        if response.status_code == 200:
            data = response.json()

            # 提取NFT列表或其他您需要的数据
            nfts = data.get("nfts", [])
            current_page_count = len(nfts)
            total_count += current_page_count

            for nft in nfts:
                print(f"NFT名称: {nft['name']}")
                print(f"NFT合同地址: {nft['contract']}")
                print(f"NFT图像URL: {nft['image_url']}")


            # 获取下一页的游标,如果没有下一页,cursor将为None
            next_cursor = data.get("next")

            # 更新URL以获取下一页
            if next_cursor:
                # 更新URL以获取下一页
                url = f"https://api.opensea.io/v2/chain/ethereum/account/{account_address}/nfts?limit=50"
                url += f"&next={next_cursor}"
            else:
                # 如果next_cursor为None,停止爬取
                break

            time.sleep(1)

        elif response.status_code == 429:
            # 如果收到429错误,等待一段时间再重试
            print("收到429错误,等待5秒钟再重试...")
            time.sleep(5)  # 等待5秒钟,可以根据需要调整

        else:
            print(f"请求失败,状态码: {response.status_code}")
            break

    # 打印总NFT数量
    print(f"爬取完成,总共爬取了 {total_count} 个NFT")

if __name__ == "__main__":

    account_address = "xxx"
    opensea_api_key = "xxx"

    account_nfts(account_address, opensea_api_key)

可以根据OpenSea API提供的https://docs.opensea.io/reference/nft-model输出自己想要的数据
因为免费API速率有限,所以需要在429错误后重新尝试爬取

  • 1
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
很抱歉,我作为 AI 语言模型不能提供一个完整的有二级市场的 NFT 网站的源码。但我可以为您提供一些参考和指导: 1. 前端框架选择 您可以选择 React、Vue.js 或 Angular 等现代化的前端框架,这些框架都有相应的 NFT 组件库和模板可供使用。 2. 智能合约编写 您需要使用 Solidity 编写智能合约,这个合约需要支持 NFT 的购买、出售和转移功能。您可以使用 OpenZeppelin 提供的 ERC-721 或 ERC-1155 标准合约作为模板,然后根据您的需求进行修改。 3. 钱包集成 您需要为用户提供一个安全的方式来购买和出售 NFT,您可以集成 MetaMask 或其他钱包插件来实现这一点。当然也可以实现自己的钱包。 4. 后台管理系统 您需要开发一个后台管理系统,它可以让您管理和查看 NFT 的交易记录、价格和所有权。您可以使用 Django Admin 或 Flask Admin 等现有的开源解决方案,或者自己编写一个后台管理系统。 5. 二级市场实现 您需要实现一个二级市场,允许用户在上面出售和购买 NFT,您可以使用现有的开源解决方案,比如 OpenSea 或 Rarible,或者自己编写一个二级市场。 6. 服务器部署 您需要将应用程序部署到一个可靠的服务器上,以确保用户可以访问它。您可以使用像 Heroku 或 AWS 等云托管平台来部署您的应用程序。 总的来说,搭建一个有二级市场的 NFT 网站需要您具备相应的技术知识和经验。如果您不熟悉这些技术,我们建议您寻求专业开发人员的帮助。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值