亚洲免费在线-亚洲免费在线播放-亚洲免费在线观看-亚洲免费在线观看视频-亚洲免费在线看-亚洲免费在线视频

使用Python調(diào)取任意數(shù)字資產(chǎn)錢(qián)包余額功能

系統(tǒng) 2855 0

當(dāng)我們的資產(chǎn)放在交易所的時(shí)候,可以通過(guò)鏈接交易所的API使用Python來(lái)監(jiān)控余額。

那資產(chǎn)放在錢(qián)包的時(shí)候,如何來(lái)監(jiān)控余額呢?

任何數(shù)字資產(chǎn)都可以使用區(qū)塊瀏覽器來(lái)查詢(xún)余額,那我們只要從此著手,用Python調(diào)取區(qū)塊瀏覽器,來(lái)查詢(xún)余額就能實(shí)現(xiàn)所有資產(chǎn)的余額監(jiān)控。

數(shù)字資產(chǎn)區(qū)塊鏈瀏覽器有很多,比如比特幣區(qū)塊瀏覽器btc.com,以太坊區(qū)塊瀏覽器etherscan.io,ATOM區(qū)塊瀏覽器mintscan.io,PCX區(qū)塊瀏覽器scan.chainx.org等等。

區(qū)塊瀏覽器可以根據(jù)是否提供API分為兩大類(lèi),做的好的會(huì)把API標(biāo)示出來(lái),供大家查詢(xún)。做的粗糙的就不明確告訴你API,但通過(guò)爬蟲(chóng)的方式是可以找出來(lái)的。

下面我們逐一分析:

一、提供API查詢(xún)的區(qū)塊瀏覽器

1.比特幣 區(qū)塊瀏覽器 btc.com

在首頁(yè)下面有提供API,并配有說(shuō)明文檔https://btc.com/api-do

使用Python調(diào)取任意數(shù)字資產(chǎn)錢(qián)包余額功能_第1張圖片

這種獲取比較簡(jiǎn)單,根據(jù)文檔中查找可以查詢(xún)余額的地址獲取即可。

比如btc.com中找到獲取網(wǎng)址為https://chain.api.btc.com/v3/address/3JvpMTpy6DDp1Um3iEGYpkBaUmJp7ReMR2,最后一串為比特幣地址,通過(guò)Python中requests.get( )即可返回相關(guān)數(shù)據(jù)如下:

使用Python調(diào)取任意數(shù)字資產(chǎn)錢(qián)包余額功能_第2張圖片

注意余額的單位每個(gè)幣種都不一樣,根據(jù)自己錢(qián)包余額調(diào)整即可,比如上述余額實(shí)際需要除以10e7(10的7次方)就可得到余額為0.14141195個(gè)BTC。

接下來(lái)我們就可以監(jiān)控我們的錢(qián)包余額,假設(shè)你從別處提到你錢(qián)包1個(gè)比特幣,那監(jiān)控什么時(shí)候余額大于1個(gè)比特幣了,讓程序?qū)崿F(xiàn)釘釘發(fā)消息提醒即可。

完整代碼如下:

            
import pandas as pd
import random
import ccxt
import threading, time, datetime
import json
import urllib
import datetime
import requests

# 異常監(jiān)控用
def send_dingding_msg1(content, robot_id='你的釘釘機(jī)器人ID'):
  try:
    msg = {
      "msgtype": "text",
      "text": {"content": content + '\n' + datetime.datetime.now().strftime("%m-%d %H:%M:%S")}
    }
    headers = {"Content-Type": "application/json ;charset=utf-8 "}
    url = 'https://oapi.dingtalk.com/robot/send?access_token=' + robot_id
    body = json.dumps(msg)
    status = requests.post(url, data=body, headers=headers)
    if status.status_code == 200:
      return status.json()
    return status
  except Exception as err:
print ( '釘釘發(fā)送失敗' , err)

while True:
  try:
    address = '你的比特幣錢(qián)包地址' # 比特幣錢(qián)包地址
    url = 'https://chain.api.btc.com/v3/address/' + address # 獲取余額地址
    # 可以用f'https://chain.api.btc.com/v3/address/{address}'替代
    response = requests.get(url)
    if response.text: # 發(fā)現(xiàn)有時(shí)候會(huì)出現(xiàn)錯(cuò)誤導(dǎo)致返回?cái)?shù)據(jù)為空,加此目的當(dāng)數(shù)據(jù)為空時(shí)繼續(xù)獲取余額
      # print(response.json())
      BTC = float(response.json()['data']['balance']) / 10e7 # 科學(xué)計(jì)數(shù)法,處理返回?cái)?shù)據(jù)
      print('BTC', BTC)
    else:
      continue
    if BTC > 1: # 當(dāng)余額大于1時(shí)實(shí)現(xiàn)釘釘提醒
      print('BTC', BTC)
      content = 'BTC錢(qián)包充值到賬' #
      send_msg1 = send_dingding_msg1(content)
      print(send_msg1)
      break
    time.sleep(5)
  except Exception as order_err:
    print("查詢(xún)出錯(cuò),繼續(xù)嘗試", order_err)
    time.sleep(3)
          

2.以太坊區(qū)塊瀏覽器etherscan.io余額查詢(xún)

同樣https://etherscan.io/apis此處也配有說(shuō)明文檔,與上述稍微不同的是它需要獲取APIKEY,類(lèi)似交易所申請(qǐng)API一樣,需要注冊(cè)下。

我們?cè)谡f(shuō)明文檔可以看到獲取以太坊余額的地址為:https://api.etherscan.io/api?module=account&action=balance&address=0xddbd2b932c763ba5b1b7ae3b362eac3e8d40121a&tag=latest&apikey=YourApiKeyToken,這里面需要用到你要查詢(xún)的以太坊地址address和你申請(qǐng)的apikey, 我們可以把這兩個(gè)設(shè)成變量,方便更改。

接下來(lái)就是處理數(shù)據(jù)了,同樣要注意單位的不同,余額需要除以10e17才能轉(zhuǎn)換成正常的。

我們也可以監(jiān)控余額,比如當(dāng)充值到這個(gè)錢(qián)包,ETH余額大于10時(shí)實(shí)現(xiàn)提醒。

還有一大批數(shù)字貨幣是ETH上的ERC20代幣,如何獲得他們的余額呢?

在說(shuō)明文檔中我們可以找到token一欄,有說(shuō)明獲取地址為https://api.etherscan.io/api?module=account&action=tokenbalance&contractaddress=0x57d90b64a1a57749b0f932f1a3395792e12e7055&address=0xe04f27eb70e025b78871a2ad7eabe85e61212761&tag=latest&apikey=YourApiKeyToken。仔細(xì)對(duì)比你會(huì)發(fā)現(xiàn)比ETH余額多了個(gè)智能合約contractaddress地址,這個(gè)查詢(xún)方法也非常簡(jiǎn)單,在https://etherscan.io搜索代幣,比如搜索OMG,就會(huì)出現(xiàn)合約地址。

使用Python調(diào)取任意數(shù)字資產(chǎn)錢(qián)包余額功能_第3張圖片

這樣把三個(gè)輸入組成新的獲取地址,就能獲得代幣的余額。你要查詢(xún)的以太坊地址address、你申請(qǐng)的apikey、代幣的合約地址contractaddress。我們可以把這三個(gè)設(shè)成變量,方便更改。

完整代碼如下:

            
while True:
  try:
    apikey = '你在https://etherscan.io申請(qǐng)的apikey'
    address = '你的以太坊地址'
    # 查詢(xún)以太坊地址
    url1 = 'https://api.etherscan.io/api?module=account&action=balance&address='+address+'&tag=latest&apikey='+apikey

    # 查詢(xún)ERC20地址
    contractaddress = '0xd26114cd6EE289AccF82350c8d8487fedB8A0C07' ##OMG合約地址
    url2 = 'https://api.etherscan.io/api?module=account&action=tokenbalance&contractaddress='+ contractaddress+ '&address='+ address+'&tag=latest&apikey='+ apikey
    response1 = requests.get(url1)
    response2 = requests.get(url2)
    # print(response.json())
    asset1 = 'ETH'
    asset2 = 'OMG'
    ban1 = float(response1.json()['result']) / 10e17 # 科學(xué)計(jì)數(shù)法,處理返回?cái)?shù)據(jù)
    ban2 = float(response2.json()['result']) / 10e17 # 科學(xué)計(jì)數(shù)法,處理返回?cái)?shù)據(jù)
    print(asset1, ban1)
    print(asset2, ban2)
    if ban1 > 10:
      print(asset1, ban1)
      content = 'ETH錢(qián)包充值到賬'
      send_msg1 = send_dingding_msg1(content)
      print(send_msg1)
      break
    time.sleep(5)
  except Exception as order_err:
    print("查詢(xún)出錯(cuò),繼續(xù)嘗試", order_err)
    time.sleep(3)
          

二,不提供API的區(qū)塊瀏覽器

這種方法稍微復(fù)雜,需要爬蟲(chóng)來(lái)獲取地址。

我們以最近有點(diǎn)火的chainx代幣PCX為例來(lái)說(shuō)明,因?yàn)檫@個(gè)幣種采取了鎖倉(cāng)BTC挖礦來(lái)獲得其代幣PCX,而要想提取利息需要拿利息約11倍的PCX去投票,簡(jiǎn)單說(shuō)就是讓你去買(mǎi)PCX,我在其內(nèi)網(wǎng)(鏈上交易)掛低價(jià)單來(lái)買(mǎi),什么時(shí)候成交希望有個(gè)提醒,那就用程序監(jiān)控區(qū)塊瀏覽器我地址的余額,一旦成交立馬投票去拿利息。

沒(méi)經(jīng)歷過(guò)上面的朋友可能覺(jué)得很復(fù)雜,沒(méi)關(guān)系,我們的目的就是用程序獲取其錢(qián)包余額。

PCX區(qū)塊瀏覽器地址為https://scan.chainx.org/,輸入錢(qián)包地址之后就可以獲得賬戶(hù)詳情,怎么用程序獲得余額呢?

在谷歌瀏覽器下按F12,進(jìn)入開(kāi)發(fā)者模式,點(diǎn)擊Network、XHR,然后刷新。

我們發(fā)現(xiàn)在balance一樣展開(kāi)有余額信息,那我們只要找到請(qǐng)求頭部信息就能獲得了

使用Python調(diào)取任意數(shù)字資產(chǎn)錢(qián)包余額功能_第4張圖片

點(diǎn)擊Headers找到需要的信息,如下

使用Python調(diào)取任意數(shù)字資產(chǎn)錢(qián)包余額功能_第5張圖片

這樣我們就可以獲得相關(guān)信息,然后對(duì)數(shù)據(jù)進(jìn)行處理即可。

我當(dāng)時(shí)設(shè)定的是購(gòu)買(mǎi)35個(gè),所以當(dāng)數(shù)量大于30時(shí)用釘釘通知我。

完整代碼如下

            
while True:
  try:
    url = "https://api.chainx.org.cn/account/你的PCX錢(qián)包地址/balance"
    headers = {
      "Content-type": "application/json; charset=utf-8",
      'User-Agent': 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_1) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/76.0.3809.100 Safari/537.36'
    }
    response = requests.get(url, headers=headers)
    balance = response.json()
    # print(balance)
    asset = 'PCX'
    PCX = balance[1]['Free']/100000000 # 此處注意PCX代幣的位置,如果在第0個(gè)就改成[0]
    print('PCX', PCX)

    if PCX > 30:
      print('PCX', PCX)
      content = 'PCX購(gòu)買(mǎi)已到賬,余額為' + str(PCX) # 發(fā)一個(gè)變量,用str轉(zhuǎn)換下
      send_msg1 = send_dingding_msg1(content)
      print(send_msg1)
      break
    time.sleep(3)
  except Exception as order_err:
    print("查詢(xún)出錯(cuò),繼續(xù)嘗試", order_err)
    time.sleep(3)
          

其它不提供API的區(qū)塊瀏覽器獲取方式是一樣的。

有了以上的方法,我們就可以用程序獲得任 意區(qū)塊瀏覽器地址的余額,并進(jìn)行監(jiān)控了。

使用Python調(diào)取任意數(shù)字資產(chǎn)錢(qián)包余額功能_第6張圖片

總結(jié)

以上所述是小編給大家介紹的使用Python調(diào)取任意數(shù)字資產(chǎn)錢(qián)包余額功能,希望對(duì)大家有所幫助,如果大家有任何疑問(wèn)請(qǐng)給我留言,小編會(huì)及時(shí)回復(fù)大家的。在此也非常感謝大家對(duì)腳本之家網(wǎng)站的支持!
如果你覺(jué)得本文對(duì)你有幫助,歡迎轉(zhuǎn)載,煩請(qǐng)注明出處,謝謝!


更多文章、技術(shù)交流、商務(wù)合作、聯(lián)系博主

微信掃碼或搜索:z360901061

微信掃一掃加我為好友

QQ號(hào)聯(lián)系: 360901061

您的支持是博主寫(xiě)作最大的動(dòng)力,如果您喜歡我的文章,感覺(jué)我的文章對(duì)您有幫助,請(qǐng)用微信掃描下面二維碼支持博主2元、5元、10元、20元等您想捐的金額吧,狠狠點(diǎn)擊下面給點(diǎn)支持吧,站長(zhǎng)非常感激您!手機(jī)微信長(zhǎng)按不能支付解決辦法:請(qǐng)將微信支付二維碼保存到相冊(cè),切換到微信,然后點(diǎn)擊微信右上角掃一掃功能,選擇支付二維碼完成支付。

【本文對(duì)您有幫助就好】

您的支持是博主寫(xiě)作最大的動(dòng)力,如果您喜歡我的文章,感覺(jué)我的文章對(duì)您有幫助,請(qǐng)用微信掃描上面二維碼支持博主2元、5元、10元、自定義金額等您想捐的金額吧,站長(zhǎng)會(huì)非常 感謝您的哦!!!

發(fā)表我的評(píng)論
最新評(píng)論 總共0條評(píng)論
主站蜘蛛池模板: 91亚洲精品久久91综合 | 天天做天天爱天天操 | 午夜成人免费影院 | 久久久久久亚洲精品不卡 | 久久精品夜色国产 | 中文字幕在线亚洲 | 日本亚洲高清 | 一个色综合亚洲色综合 | 亚洲不卡在线观看 | 激情综合网色播五月 | 国产成人91高清精品免费 | 天天伊人| 不卡视频免费在线观看 | 欧美日韩乱码毛片免费观看 | 久久精品国产精品亚洲精品 | 亚洲天堂一区 | 国产91在线精品福利 | 久久婷婷是五月综合色狠狠 | 操白嫩美女 | 国产成人一区二区 | 亚洲国产日产韩国欧美综合 | 久久精品国产亚洲精品2020 | 四虎影院免费视频 | 色就色综合 | 成人a视频 | 日韩在线观看网站 | 亚洲成人综合视频 | 日本高清在线精品一区二区三区 | 亚洲国产成人久久一区久久 | 亚洲高清在线观看看片 | 曰本不卡视频 | 亚洲免费三区 | 一日本道加勒比高清一二三 | 天天综合久久 | 免费一级大毛片a一观看不卡 | 国产精品爱久久 | 日本 欧美 国产 | 色片免费观看 | 人与拘一级a毛片 | 免费一级毛片视频 | 天天爽|