爬虫虚拟货币公告

频道:百科知识 日期: 浏览:0

Bitget下载

注册下载Bitget下载,邀请好友,即有机会赢取 3,000 USDT

APP下载   官网注册

项目需求

现在各行各业对数字货币都十分关注,今天带来的项目是定时关注iNFR的数字行情监控,监控指定数字货币的行情,超过心中指定的价位,即使发送信息提醒,不要让你错过买的时机。

需要程序和包

  • Fiddler 抓包工具
  • Google 浏览器
  • VScode 编辑器
  • Python 3.8.5
  • Python 包
    • requests (爬虫包)
    • email (邮件包)
    • smtplib (邮件包)

数据获取

为了保证网站数据安全与正常使用,网站关键性数据已隐藏。

  • 数据分析时,找到关键性的url数据包

  • 分析后,只要修改后面的id值,可得到对应的json数据包,将其写成dict模式,方便后面调用
category = {   'all' : 'all',   'iBox' : 'c8gb15q2dtei4q721ukg',   '唯一艺术' : 'c8gcana2dtei4q721ur0',   'zTag':'c8uvgr9uk5rrg142ol02',   '优版权':'c98g101uk5ro4vqnqjeg',   '幻藏':'c98gb69uk5ro4vqnqka0',   'Art Meta':'c98gdt9uk5ro4vqnqkgg', }
  • 获取数据
 headers = {     'User-Agent': r'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/100.0.4896.60 Safari/537.36',     'Cookie': 'Hm_lvt_97ec653ce3458e152c3a8bc9e02fa66d=1652278211;Hm_lpvt_97ec653ce3458e152c3a8bc9e02fa66d=1652278269'     } category = {     'all' : 'all',     'iBox' : 'c8gb15q2dtei4q721ukg',     '唯一艺术' : 'c8gcana2dtei4q721ur0',     'zTag':'c8uvgr9uk5rrg142ol02',     '优版权':'c98g101uk5ro4vqnqjeg',     '幻藏':'c98gb69uk5ro4vqnqka0',     'Art Meta':'c98gdt9uk5ro4vqnqkgg',     } url = 'https://XXXX.XXXX.XXX/XX/tourist/platform/detective/rt/query?platform_id=' + category[u_id] resopnse = get(url=url,headers=headers).json()

查询指定iNFR的货币,监控价值

  • 获取对应的iNFR名称,匹配名字是否一直
 for i in range(len(resopnse['data'])):     # 匹配查询的名字     name = resopnse['data'][i]['name']     if monitor_name == name:         print('名字匹配成功')
  • 名字匹配成功,监控价值,超过指定价值发送邮件提醒
 # 得到价值 crt_amount = resopnse['data'][i]['crt_amount'] # 匹配监控的价值 # ! 原网站显示的时候后面少了两个00,这里是测试,未作处理 if int(monitor_price) >= crt_amount:     # 发邮件提醒     # ! 接受邮箱是个列表list,不要写成字符串str     标题 = '你关注的iNFR中分类' + u_id + '旗下的' + monitor_name + '价格达到了' + monitor_price     Send_Email('你的发件邮箱', '邮箱授权码',['你的收件邮箱'], 标题, '内容', 'smtp.qq.com')         

发邮件提醒

  • 发邮件提醒有以下注意事项:

1.你发邮件的邮箱要开启stmp模式

2.邮箱授权码不是你登录邮箱的密码,而是你后台授权码

3.具体如何设置,这里不做说明,请自行百度

  • 发邮件代码

1.my_email 发件邮箱

2.pwd 邮箱授权码

3.send_email 收件邮箱(列表模式)

4.mail_title 邮件标题

5.mail_content 邮件内容

6.smtp_server 邮箱服务器

 def Send_Email(my_email, pwd, send_email, mail_title, mail_content, smtp_server):     email = MIMEMultipart()     email['Subject'] = Header(mail_title, 'utf-8')     email['From'] = my_email     email['To'] = ";".join(send_email)     email.attach(MIMEText(mail_content, 'plain', 'utf-8'))     try:         smtp = SMTP_SSL(smtp_server)         # ! 跟服务器打招呼,告诉它我们准备连接,最好加上这行代码         smtp.ehlo(smtp_server)         smtp.login(my_email, pwd)         smtp.sendmail(my_email, send_email, email.as_string())         smtp.quit()         print("发送成功")     except SMTPException:         print("发送失败")

整个代码详情

 # -*- coding: utf-8 -*- # @Author: cxys_dragon # @Date:   2022-05-11 22:15:17 # @Last Modified by:   cxys_dragon # @Last Modified time: 2022-05-12 23:08:30 from requests import get from email.header import Header from email.mime.multipart import MIMEMultipart from email.mime.text import MIMEText from smtplib import SMTP_SSL, SMTPException  # todo 发邮件 def Send_Email(my_email, pwd, send_email, mail_title, mail_content, smtp_server):     email = MIMEMultipart()     email['Subject'] = Header(mail_title, 'utf-8')     email['From'] = my_email     email['To'] = ";".join(send_email)     email.attach(MIMEText(mail_content, 'plain', 'utf-8'))     try:         smtp = SMTP_SSL(smtp_server)         # ! 跟服务器打招呼,告诉它我们准备连接,最好加上这行代码         smtp.ehlo(smtp_server)         smtp.login(my_email, pwd)         smtp.sendmail(my_email, send_email, email.as_string())         smtp.quit()         print("发送成功")     except SMTPException:         print("发送失败")    # todo 监控程序 def Monitor(u_id,monitor_name,monitor_price):     '''     u_id            匹配需要查询的对应ID值     monitor_name    监控NFT的名字     monitor_price   监控NFT的价值     '''     headers = {     'User-Agent': r'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/100.0.4896.60 Safari/537.36',     'Cookie': 'Hm_lvt_97ec653ce3458e152c3a8bc9e02fa66d=1652278211; Hm_lpvt_97ec653ce3458e152c3a8bc9e02fa66d=1652278269'     }     category = {         'all' : 'all',         'iBox' : 'c8gb15q2dtei4q721ukg',         '唯一艺术' : 'c8gcana2dtei4q721ur0',         'zTag':'c8uvgr9uk5rrg142ol02',         '优版权':'c98g101uk5ro4vqnqjeg',         '幻藏':'c98gb69uk5ro4vqnqka0',         'Art Meta':'c98gdt9uk5ro4vqnqkgg',         }     url = 'https://xxx.xxx.xxx/xx/tourist/platform/detective/rt/query?platform_id=' + category[u_id]     resopnse = get(url=url,headers=headers).json()     for i in range(len(resopnse['data'])):         # 匹配查询的名字         name = resopnse['data'][i]['name']         if monitor_name == name:             # 得到价值             crt_amount = resopnse['data'][i]['crt_amount']             # 匹配监控的价值             # ! 原网站显示的时候后面少了两个00,这里是测试,未作处理             if int(monitor_price) >= crt_amount:                 # 发邮件提醒                 # ! 接受邮箱是个列表list,不要写成字符串str                 text = '你关注的iNFR中分类' + u_id + '旗下的' + monitor_name + '价格达到了' + monitor_price                 Send_Email('你的发件邮箱', '邮箱授权码',['你的收件邮箱'], 标题, '内容', 'smtp.qq.com')                 break            Monitor('iBox','仙境','4499900')

实时监控

  • 关于实时监控,是在服务器上建议一个定时任务,定时执行代码。
  • 这里以Linux服务器为例,使用定时命令crontab
 # 编辑定时命令 crontab -e # 编辑定时任务 每隔十分钟执行一次 10 * * * * myCommand
  • 具体编辑定时任务,请自行百度查询

后续数据分析的一些想法

  • 可以建立一个数据库,将需要的数据存储下来。
  • 根据存储数据,建立数据分析模型,例如折线形柱状图
  • 形成类似股票的分析模式,便于分析走势。
  • 可以用定时任务,自动爬取数据并存储,后面读取数据分析即可。
  • 详细代码,这里不再分析,有兴趣的伙伴,可以自行研究。



版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容, 请发送邮件至 931614094@qq.com 举报,一经查实,本站将立刻删除。

本文地址: http://www.lyw520.com/baikezhishi/26811.html
文章来源: 小美
爬虫虚拟货币公告文档下载: PDF DOC TXT
关键词: 监控价值 email 邮箱