本文环境: 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()
如果进展顺利的话,点击运行后用微信扫码登陆即可,挂着服务器上就可以长期运行此机器人了。扫码关注,欢迎沟通交流学习