教你开发一个简易的推特白名单机器人

背景:

推特上有很多有影响力的大V做一些白名单的活动,只要完成关注点赞转推就有机会获得白名单,很多小伙伴每天做很多这样的任务,但是从来都没被抽中过,原因很简单,机器人太多了,那么你想不想也要一个自己的机器人呢?

前提:

技术栈:

  • python3

  • python类库:tweepy

一,需求分析:

做一个推特机器人,自动完成白名单任务。

白名单任务大致有:关注,点赞,转推。(太复杂的不在本次教程之内)

任务拆解:

1,关注功能

2,点赞功能

3,转推功能

除以上功能还需要找到发白名单活动的推文。

一般白名单活动的推文中会有以下几个关键字:

Follow,Like,RT,Tag,Retweet,FOLLOW,LIKE,RETWEET,TAG,关注,转推,喜欢

二,设计

机器人所要做的事就是 认证→ 找推文→ 关注→ 点赞→ 转推→ 找下一条推文

以下是设计流程图:

post image

三,调研

需要调研四个功能,

  • 认证

  • 找推文

  • 关注

  • 点赞

  • 转推


1,认证和找推文

只要你学习过tweepy的话,认证和找推文是tweepy最基本的功能。

以下代码,能完成认证,然后打印出当前时间点home上展示的第一条推文:

post image

执行结果(红框内就是第一条推文):

post image

这里可参照tweepy的API文档:get-tweet-timelines

但是有了推文,我不知道是谁发的哪条推文,我就不知道关注谁,给哪条推文点赞,和转推哪条推文?

先解析一下一条推文必要的属性

post image

我们需要的一条推文的最基本元素有:用户标识(screen_name),推文ID,推文内容

那么这条推文的基本信息如下:

post image

重新改一下代码:

post image

执行结果中想要的信息都出来了:

post image

2,关注

有了上面取得的用户标识(screen_name),就很容易做关注了。使用以下API就可以关注了。

api.create_friendship(screen_name=screen_name)

API文档: api.create_friendship()

先找到一个未关注的人(红框中文字就是用户标识,也就是screen_name)

post image

执行以下代码,

post image

成功关注了

post image

3,点赞

点赞需要知道推文的id,然后使用以下代码

api.create_favorite(id=tweet.id_str)

还记得上面的这个推文吗?

推文ID是:1496107063281283078

post image

执行以下代码:

post image

执行代码后,推文被点赞了

post image

4,转推

转推使用以下代码:

api.update_status(
    '转推这条推文',
attachment_url="https://mobile.twitter.com/mirror_alerts/status/1496107063281283078")
post image

执行完以上代码后:

post image

5,找白名单活动的推文

使用简单python函数就可以找出有白名单活动的推文,触发条件后去做关注,点赞,转推就可以了。

post image

四,开发实现

把以上的功能组合起来就可以实现简单的机器人了,这里我只是抛砖引玉,剩下的工作就交给你们了。


—— 来自 DFarm Club