本文环境: Windows 10 和 python 3.5

需要安装 itchat 以及 pyquery 库,直接命令 pip3 install itchat 以及 pip3 install pyquery 进行安装

在群聊和私聊中可实现查询当前币价的功能,如下

全部代码如下

# 导入需要的库

import itchat

from pyquery import PyQuery as pq

import datetime

# 币种的缩写和其对应的全称,从非小号首页中爬取下来并装在字典中

coindict = {'BTC': 'bitcoin', 'ETH': 'ethereum', 'XRP': 'ripple', 'BCH': 'bitcoin-cash', 'EOS': 'eos', 'XLM': 'stellar', 'LTC': 'litecoin', 'ADA': 'cardano', 'MIOTA': 'iota', 'USDT': 'tether', 'TRX': 'tron', 'XMR': 'monero', 'NEO': 'neo', 'DASH': 'dash', 'VEN': 'vechain', 'ETC': 'ethereum-classic', 'XEM': 'nem', 'BNB': 'binance-coin', 'OKB': 'okb', 'HT': 'ht', 'ZEC': 'zcash', 'OMG': 'omisego', 'QTUM': 'qtum', 'ZRX': '0x', 'LSK': 'lisk', 'BCN': 'bytecoin-bcn', 'DCR': 'decred', 'BTG': 'bitgem', 'ICX': 'icon', 'BTS': 'bitshares', 'AE': 'aeternity', 'DGB': 'digibyte', 'MKR': 'maker', 'STEEM': 'steem', 'XVG': 'verge', 'DOGE': 'dogecoin', ...}

# 获取币种价格的函数

def get_price(keyword):

if keyword.upper() in coindict:

keyword = coindict[keyword.upper()]

url = 'https://www.feixiaohao.com/currencies/{}/'.format(keyword.lower())

try:

doc = pq(url)

nowTime = datetime.datetime.now().strftime('%Y-%m-%d %H:%M:%S')

content = doc('.cell')

info = content.find('.coinprice')

fluctuation =info.find('span').text()

info.find('span').remove()

price = info.text()

rank = doc('.tag-marketcap').text()

result = "当前{}的价格:{}\n涨幅:{}\n市值排名:{}\n【{}】".format(keyword,price,fluctuation,rank,nowTime)

return result

except:

return

# 在私聊中可用

@ itchat.msg_register(itchat.content.TEXT)

def text_reply(msg):

return get_price(msg['Text'])

# 在群聊中可用

@ itchat.msg_register(itchat.content.TEXT,isGroupChat=True)

def groupchat_reply(msg):

return get_price(msg['Text'])

if __name__=='__main__':

itchat.auto_login(hotReload=True) # hotReload = True, 保持在线,下次运行代码可自动登录

itchat.run()

如果进展顺利的话,点击运行后用微信扫码登陆即可,挂着服务器上就可以长期运行此机器人了。扫码关注,欢迎沟通交流学习

Logo

DAMO开发者矩阵,由阿里巴巴达摩院和中国互联网协会联合发起,致力于探讨最前沿的技术趋势与应用成果,搭建高质量的交流与分享平台,推动技术创新与产业应用链接,围绕“人工智能与新型计算”构建开放共享的开发者生态。

更多推荐