机器人教学实战第一篇: 世博NFT机器人(又名:兔子铃铛)
April 9th, 2022

Discord社区正在建设中, 以后此类文章将首发在Discord.

今天刘社长世博NFT机器人起了非常可爱的名字叫兔子铃铛.

代码开源地址:

代码完全开源, 但是想要了解世博机器人如何设计, 如何开发的,请看此文章.

在开发这个机器人的那天晚上, 一位推特网友提醒了我, 我才动手去开发.

从构思到开发完成,很快,不到2个小时.

因为足够简单,所以就作为教学实战的第一篇给大家来入门吧.


第一步: 设计

流程图如下:

  1. 取网页数据
  2. 拿到取得的数据去数据里查询
  3. 如果发现数据库中没有网页上的新数据, 说明是新的, 所以就可以发推送
  4. 然后要把新的数据保存在数据库中, 以免第二次再发.
  5. 休息30秒后,从头再来.

第二步: 技术调研

使用语言: Python 3.X

使用Python 第三方类库: requests, BeautifulSoup, sqlalchemy, tweepy

  • Requests是一个基于Apache2协议开源的Python HTTP库。
  • Beautiful Soup是python的一个库,最主要的功能是从网页抓取数据。
  • 提供了SQL工具包及对象关系映射(ORM)工具
  • Tweepy是Twitter官方提供的Python第三方开发库,简单好用易学高效。

第三步: 实战

有了这些技术就足够了.

根据设计流程图, 首先去 expo.chikoroko.art 取网页数据.

功能一:

先要使用Requests 做个HTTP请求

url = 'https://expo.chikoroko.art/'
res = requests.get(f"https://expo.chikoroko.art/", headers={'User-Agent': "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/100.0.4896.75 Safari/537.36"})

print(res.text)

执行一下, 就能看到取得到了html代码.

功能二:

接下来要使用Beautiful Soup 取找这个按钮Collect now for free .

如何找呢?

使用浏览器的开发者工具, 在想要找的元素上点击鼠标右键 点击 检查 按钮

就很容易找到这个按钮的代码了

分析一下这个按钮是使用的span 标签, 并且class 是 text-wrapper button-text

我们试着用代码找一下

因为有多个这样的按钮,所以使用了for 语句

运行结果如下:

发现了两个**Collect now for free ->**按钮

这里需要保存状态, 才能判断出是否是新的.

接下来有两种方案,保存我们的状态.

  1. 保存Cookie, 只要出现Collect now for free 按钮, 就代表有新的.
  2. 保存每个nft名到数据库, 只要数据库中没有新的nft名就代表有新的.

我这里选择了第二种, 以后再讲解第一种.

这里给大家留个作业: 请根据上面的方法, 找到nft名字.

功能四: 设计数据库

数据库非常简单, 两个字段(其实一个字段也够了)

表名:chikoroko

  • id :自增型
  • name: 保存nft名字

找到名字自后保存到这个name中就可以了.

功能五: sqlalchemy 的使用

  1. 红色框内的代码是导入要使用的库
  2. 橙色框内的代码是连接数据库以及初始化Session
  3. 定义和数据库中和表一一对应的Class

然后和刚才的代码放在一起, 在再最后取得nft名之后把nft名字保存在数据库中.

执行结果:

再看数据库中的数据:

已经保存成功了!!

功能六: 发送推送

以发送推特为主:

分二步:

  1. 引入
  2. 初始化

推特key的话, 填写你们自己的.

只有申请了推特开发者,才有这个key. 申请不到可以想办法买.

发送推特的功能使用以下代码:

api.update_status(message)

最后一步:

参考我提供的代码, 设置好你自己的推特key, 连接上数据库, 就可以运行了, 如果有任何问题,群里讨论


如果你觉得对你有用

请关注我的mirror: https://mirror.xyz/zlexdl.eth

和关注我的推特:https://twitter.com/zlexdl

我的Notion地址:https://zlexdl.notion.site/f4aa875aa7be4ccca3918a783c499959

Subscribe to zlexdl.eth
Receive the latest updates directly to your inbox.
Verification
This entry has been permanently stored onchain and signed by its creator.
More from zlexdl.eth

Skeleton

Skeleton

Skeleton