Binance API P2P 我无法使用Python查看SELL信息

发布于 2025-01-15 03:27:21 字数 530 浏览 3 评论 0原文

我一直在尝试使用 Python 从 Binance 获取 P2P 销售数据。运行下面的代码我可以从“买入”部分获取信息,但我无法看到“卖出”部分的信息。你能帮助我吗?

以下代码运行正确,但仅显示 Binance P2P 的 BUY 部分。例如,当我尝试使用此 URL 时 (https: //p2p.binance.com/es/trade/sell/BUSD?fiat=ARS& payment=ALL)没有任何变化。

url_2 = 'https://p2p.binance.com/bapi/c2c/v2/friendly/c2c/adv/search'
p2p = requests.get(url)
q = p2p.text
w = json.loads(q)
e = w['data']
df = pd.json_normalize(e)
df

I´m getting stuck on trying to bring P2P selling data from Binance using Python. Running the code below I can bring the information from de BUY section but I´m not being able to see the information from the SELL section. Can you help me?

The following code runs right but it only shows the BUY section of Binance P2P. When I try to use this URL for example (https://p2p.binance.com/es/trade/sell/BUSD?fiat=ARS&payment=ALL) nothing changes.

url_2 = 'https://p2p.binance.com/bapi/c2c/v2/friendly/c2c/adv/search'
p2p = requests.get(url)
q = p2p.text
w = json.loads(q)
e = w['data']
df = pd.json_normalize(e)
df

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(2

少跟Wǒ拽 2025-01-22 03:27:21

要访问 p2p 数据,您需要 POST 到 https:// p2p.binance.com/bapi/c2c/v2/Friendly/c2c/adv/search

例如:

headers = {
    "Accept": "*/*",
    "Accept-Encoding": "gzip, deflate, br",
    "Accept-Language": "en-GB,en-US;q=0.9,en;q=0.8",
    "Cache-Control": "no-cache",
    "Connection": "keep-alive",
    "Content-Length": "123",
    "content-type": "application/json",
    "Host": "p2p.binance.com",
    "Origin": "https://p2p.binance.com",
    "Pragma": "no-cache",
    "TE": "Trailers",
    "User-Agent": "Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:88.0) Gecko/20100101 Firefox/88.0"
}

data = {

"USDT": {
    "asset": "USDT",
    "fiat": "ZAR",
    "merchantCheck": True,
    "page": 1,
    "payTypes": ["BANK"],
    "publisherType": None,
    "rows": 20,
    "tradeType": "Sell,

},

r = requests.post('https://p2p.binance.com/bapi/c2c/v2/friendly/c2c/adv/search', headers=headers, json=data).json()

您可以根据需要更改数据。 (例如将“Tradetype”更改为“Buy”)不幸的是,API 没有记录,因此计算参数需要进行一些试验和错误。 这个问题有一个很好的参数列表。

To access the p2p data you need to POST to https://p2p.binance.com/bapi/c2c/v2/friendly/c2c/adv/search

So an e.g.:

headers = {
    "Accept": "*/*",
    "Accept-Encoding": "gzip, deflate, br",
    "Accept-Language": "en-GB,en-US;q=0.9,en;q=0.8",
    "Cache-Control": "no-cache",
    "Connection": "keep-alive",
    "Content-Length": "123",
    "content-type": "application/json",
    "Host": "p2p.binance.com",
    "Origin": "https://p2p.binance.com",
    "Pragma": "no-cache",
    "TE": "Trailers",
    "User-Agent": "Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:88.0) Gecko/20100101 Firefox/88.0"
}

data = {

"USDT": {
    "asset": "USDT",
    "fiat": "ZAR",
    "merchantCheck": True,
    "page": 1,
    "payTypes": ["BANK"],
    "publisherType": None,
    "rows": 20,
    "tradeType": "Sell,

},

r = requests.post('https://p2p.binance.com/bapi/c2c/v2/friendly/c2c/adv/search', headers=headers, json=data).json()

You can change data accordingly to your needs. (e.g. change "Tradetype" to "Buy") unfortunately the API isn't documented so working out the parameters requires some trial and error. This Question has a good list of the parameters.

靖瑶 2025-01-22 03:27:21
import requests
import json

# URL and request parameters
url = "https://p2p.binance.com/bapi/c2c/v2/friendly/c2c/adv/search"
headers = {
    "Content-Type": "application/json",
    "Accept": "application/json"
}
payload = {
    "fiat": "EUR",
    "page": 1,
    "rows": 10,
    "transAmount": 500,
    "tradeType": "BUY",
    "asset": "USDT",
    "countries": [],
    "proMerchantAds": False,
    "shieldMerchantAds": False,
    "filterType": "all",
    "periods": [],
    "additionalKycVerifyFilter": 0,
    "publisherType": None,
    "payTypes": ["SEPAinstant"],
    "classifies": ["mass", "profession", "fiat_trade"]
}

# Sending the request
response = requests.post(url, headers=headers, json=payload)

# Checking the response status
if response.status_code == 200:
    data = response.json()

    # Total number of advertisements
    total_ads = data.get("total", 0)
    print(f"Total advertisements: {total_ads}")

    # List of advertisements
    ads = data.get("data", [])
    for ad_data in ads:
        adv = ad_data.get("adv", {})
        advertiser = ad_data.get("advertiser", {})

        adv_no = adv.get("advNo")
        nickname = advertiser.get("nickName", "N/A")
        month_orders = advertiser.get("monthOrderCount", 0)
        completion_rate = round(advertiser.get("monthFinishRate", 0) * 100, 2)
        price = adv.get("price", "N/A")
        available_usdt = adv.get("surplusAmount", "N/A")
        min_limit = adv.get("minSingleTransAmount", "N/A")
        max_limit = adv.get("maxSingleTransAmount", "N/A")

        print(f"""
Advertisement:
    advNo: {adv_no}
    Nickname: {nickname} | {month_orders} orders | {completion_rate}% completion
    Price: {price} EUR
    Available/order limits: {available_usdt} USDT ({min_limit}-{max_limit})
        """)
else:
    print(f"Error with the request: {response.status_code}")
import requests
import json

# URL and request parameters
url = "https://p2p.binance.com/bapi/c2c/v2/friendly/c2c/adv/search"
headers = {
    "Content-Type": "application/json",
    "Accept": "application/json"
}
payload = {
    "fiat": "EUR",
    "page": 1,
    "rows": 10,
    "transAmount": 500,
    "tradeType": "BUY",
    "asset": "USDT",
    "countries": [],
    "proMerchantAds": False,
    "shieldMerchantAds": False,
    "filterType": "all",
    "periods": [],
    "additionalKycVerifyFilter": 0,
    "publisherType": None,
    "payTypes": ["SEPAinstant"],
    "classifies": ["mass", "profession", "fiat_trade"]
}

# Sending the request
response = requests.post(url, headers=headers, json=payload)

# Checking the response status
if response.status_code == 200:
    data = response.json()

    # Total number of advertisements
    total_ads = data.get("total", 0)
    print(f"Total advertisements: {total_ads}")

    # List of advertisements
    ads = data.get("data", [])
    for ad_data in ads:
        adv = ad_data.get("adv", {})
        advertiser = ad_data.get("advertiser", {})

        adv_no = adv.get("advNo")
        nickname = advertiser.get("nickName", "N/A")
        month_orders = advertiser.get("monthOrderCount", 0)
        completion_rate = round(advertiser.get("monthFinishRate", 0) * 100, 2)
        price = adv.get("price", "N/A")
        available_usdt = adv.get("surplusAmount", "N/A")
        min_limit = adv.get("minSingleTransAmount", "N/A")
        max_limit = adv.get("maxSingleTransAmount", "N/A")

        print(f"""
Advertisement:
    advNo: {adv_no}
    Nickname: {nickname} | {month_orders} orders | {completion_rate}% completion
    Price: {price} EUR
    Available/order limits: {available_usdt} USDT ({min_limit}-{max_limit})
        """)
else:
    print(f"Error with the request: {response.status_code}")
~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文