使用Tweepy制作Twitter Bot
网赚案例实战

一步一步教你用Tweepy开发Twitter Bot

众所周知,Twitter是世界上最出名的微博类社交媒体,由于其定位是陌生人社交(对应的微信、腾讯QQ等属于熟人社交),所以可以获取大量的流量。如何在Twitter里变得受欢迎,如何通过Twitter获取精准的流量,如何快速建立自己的Twitter营销体系,本文将引入Tweepy这个基于Python的Twitter库,通过实例一步一步教你用Tweepy开发自己的Twitter Bot。

一步一步教你用Tweepy开发Twitter Bot

《Twitter自动化工具推荐以及Twitter自动化养号策略》中我们向大家介绍了Twitter的自动化工具以及Twitter的养号策略,但是这些工具要么是付费的,要么不能满足我们的定制化需求。同时Twitter官方的发帖工具Media Studio,我们在《强大的Twitter官方发帖工具Media Studio》介绍了,也需要精确设定每个Tweet的发送时间和内容,在多账号养号时非常麻烦。所以我们将使用Tweepy来开发我们自己的Twitter Bot,将Twitter的常规操作集成在一起,真正做到Set & Forget。当然,觉得自己买服务器做Bot比较麻烦的朋友,也可以使用之前文章推荐的付费工具。

Twitter Bot需要具备的功能:

  • 自动发帖:支持文本、图片、视频,支持设置发帖时间间隔,支持从指定目录自动获取图片、视频发帖。
  • 账号搜索:支持获取指定账号的following和follower账号,支持按照条件进行筛选(following数量、follower数量、活跃度等)。
  • 自动follow:根据搜索出的账号进行自动follow,支持设置每条follow的数量。
  • 自动unfollow:对于没有follow back的账户,支持延迟N天后自动unfollow,N天可配置,每天unfollow的数量可配置。
  • 自动retweet:支持按照关键词搜索tweet,支持自动retweet,每天retweet的数量可配置。

可以看到,我们的Twitter Bot将发帖、关注、转推等操作集成到一起,只要设置好就可以实现自动养号,如果多个账号一起操作,我们可以很容易建立Twitter的营销体系。下面,我们就开始实战。

这里要特别说明一下,我们需要用到基于Python的最好的Twitter库:Tweepy,可以从GitHub上下载,支持Window、Linux等系统,我们的Twitter Bot是要挂机使用的,所以下面的实战我们以 CentOS 8 + Python 3 + Tweepy为例。

准备一台VPS机器用来运行Twitter Bot

第一步,我们需要一台VPS机器用来运行Twitter Bot,需要能够访问Twitter(所以不能是中国大陆的机器),需要速度够快,需要足够便宜,需要能够方便的更换IP,这里推荐Vultr,搭建CentOS8的过程,可以参考本站的《使用CentOS7搭建ShadowSocksR(SSR)代理服务器完整教程》,这里假设我们已经完成了CentOS8的安装。

Vultr选择服务器

检查pip3、python3是否安装

第二步,检查pip3、python3是否已经安装。

运行:pip3 -V
python3 -V

检查pip3、python3是否安装

可以看到默认安装的pip版本为9.0.3,python版本为3.6.8,都可以满足要求,如果你的pip版本和python版本不对,可以使用以下命令升级:

yum install -y python3-pip

安装Tweepy

第三步,安装Tweepy。

运行以下命令:

pip3 install tweepy

安装Tweepy

获取Twitter账号的密钥

第四步,获取访问你的Twitter账号的密钥,主要包括:

  • Consumer key
  • Consumer secret
  • Access token
  • Access secret

密钥的作用在Twitter官方的Developer文档中都有描述,这里就不展开描述了,你只要知道连接你的Twitter账号、发Tweet、Follow别人都需要有这4个密钥即可。那么在哪里可以获取密钥呢?

  1. 访问Twitter的开发者主页(https://developer.twitter.com),点击Sign Up,然后Twitter会问你一系列的问题,比如你的程序是做什么的?是否用于政府机构?你申请开发者账号的目的是什么?只需要简单的回答即可,比如为了学习使用Twitter API等等,申请完毕后,Twitter会进行审核,审核的过程非常快,等待片刻即可。
  2. 回到开发者主页,点击Apps,然后选择Create an app,在App detail里面填写应用的名称、图标、url等,随便填即可,重要的来了,在Keys and Tokens中,你就可以获取API Key、API secret key,对应的就是Consumer key和Consumer secret,下面还有Access token和Access token secret,请确保Access level是Read, write, and Direct Messages,如果不是,请转到Permissions页签修改。

获取Twitter账号密钥

注意:请妥善保管你的账号的密钥,有了这四个密钥,就能控制你的账号。

使用Python和Tweepy开发Bot

第五步,使用Python和Tweepy开发Bot。

经过上面四步的准备工作,我们终于有了开发Bot所需要的全部素材,下面就开始Bot的开发。

首先是测试你的账号是否正确已正确连接上的python:


import tweepy

# Authenticate to Twitter

auth = tweepy.OAuthHandler("your-consumer-key", "your-consumer-secret")
auth.set_access_token("your-access-token", "your-access-secret")

api = tweepy.API(auth)

try:
    api.verify_credentials()
    print("Authentication OK")
except:
    print("Error during authentication")

然后运行:python3 auth.py

运行测试python

可以看到测试成功。

接下来我们给出 post一个文本消息的python,功能是连接Twitter账号并发一个简单的Tweet,内容是经典的“Hello World!”

import tweepy

# Authenticate to Twitter
auth = tweepy.OAuthHandler("your-consumer-key", "your-consumer-secret")
auth.set_access_token("your-access-token", "your-access-secret")

# Create API object
api = tweepy.API(auth)

# Create a tweet
api.update_status("Hello World!")

最后是扫描目录下的视频,每隔指定的时间(例如1小时)发送视频,发送完成后将已发送的文件移动到另一个目录,其中必须先使用api这个对象的media_upload方法上传视频,并且必须指定媒体的种类是视频,即media_category=”tweet_video”,然后再使用 api对象的update_status方法发送tweet,并且将media_ids指定为刚刚上传的视频media_id,tweet的文本可以为空:

import tweepy
import os
import time
import shutil

source_dir = '/tweepy/video'
target_dir = '/tweepy/done/'
check_after_secs = 3600
tweet = ''

# Authenticate to Twitter

auth = tweepy.OAuthHandler("your-consumer-key", "your-consumer-secret")
auth.set_access_token("your-access-token", "your-access-secret")


# Create API object
api = tweepy.API(auth)

try:
    for root, sub_dirs, files in os.walk(source_dir):
        for special_file in files:
            spcial_file_dir = os.path.join(root, special_file)

            print('Processing video %s' % spcial_file_dir)
            media = api.media_upload(filename=spcial_file_dir,media_category="tweet_video")
            post_result = api.update_status(status=tweet,media_ids=[media.media_id])

            # Move uploaded file
            shutil.move(spcial_file_dir, target_dir)

            print('Checking after %s seconds' % str(check_after_secs))
            time.sleep(check_after_secs)
except:
    print("Error during read dir")

好了,以上就是使用Tweepy制作Twitter Bot的过程,都是我们亲测有效的,更多内容,请继续关注我们。