学习如何使用 Python 构建你自己的 Twitter 机器人

关注头条号,私信回复资料会有意外惊喜呦………………最后一张照片有资料呦。

学习如何使用 Python 构建你自己的 Twitter 机器人

Twitter 允许用户将博客帖子和文章分享[1]给全世界。使用 Python 和 Tweepy 库使得创建一个 Twitter 机器人来接管你的所有的推特变得非常简单。这篇文章告诉你如何去构建这样一个机器人。希望你能将这些概念也同样应用到其他的在线服务的项目中去。

开始

tweepy[2] 库可以让创建一个 Twitter 机器人的过程更加容易上手。它包含了 Twitter 的 API 调用和一个很简单的接口。

下面这些命令使用 pipenv 在一个虚拟环境中安装 tweepy。如果你没有安装 pipenv,可以看一看我们之前的文章如何在 Fedora 上安装 Pipenv[3]。

  1. $ mkdir twitterbot
  2. $ cd twitterbot
  3. $ pipenv --three
  4. $ pipenv install tweepy
  5. $ pipenv shell
学习如何使用 Python 构建你自己的 Twitter 机器人

Tweepy —— 开始

要使用 Twitter API ,机器人需要通过 Twitter 的授权。为了解决这个问题, tweepy 使用了 OAuth 授权标准。你可以通过在 https://apps.twitter.com/ 创建一个新的应用来获取到凭证。

创建一个新的 Twitter 应用

当你填完了表格并点击了“创建你自己的 Twitter 应用

Create your Twitter application

”的按钮后,你可以获取到该应用的凭证。 Tweepy 需要用户密钥

API Key

和用户密码

API Secret

,这些都可以在 “密钥和访问令牌

Keys and Access Tokens

” 中找到。

学习如何使用 Python 构建你自己的 Twitter 机器人

向下滚动页面,使用“创建我的访问令牌

Create my access token

”按钮生成一个“访问令牌

Access Token

” 和一个“访问令牌密钥

Access Token Secret”。

使用 Tweppy —— 输出你的时间线

现在你已经有了所需的凭证了,打开一个文件,并写下如下的 Python 代码。

  1. import tweepy
  2. auth = tweepy.OAuthHandler("your_consumer_key", "your_consumer_key_secret")
  3. auth.set_access_token("your_access_token", "your_access_token_secret")
  4. api = tweepy.API(auth)
  5. public_tweets = api.home_timeline()
  6. for tweet in public_tweets:

print(tweet.text)

学习如何使用 Python 构建你自己的 Twitter 机器人


在确保你正在使用你的 Pipenv 虚拟环境后,执行你的程序。

  1. $ python tweet.py

上述程序调用了 home_timeline 方法来获取到你时间线中的 20 条最近的推特。现在这个机器人能够使用 tweepy 来获取到 Twitter 的数据,接下来尝试修改代码来发送 tweet。

使用 Tweepy —— 发送一条推特

要发送一条推特 ,有一个容易上手的 API 方法 update_status 。它的用法很简单:

  1. api.update_status("The awesome text you would like to tweet")

Tweepy 拓展为制作 Twitter 机器人准备了非常多不同有用的方法。要获取 API 的详细信息,请查看文档[5]。

一个杂志机器人

接下来我们来创建一个搜索 Fedora Magazine 的推特并转推这些的机器人。

为了避免多次转推相同的内容,这个机器人存放了最近一条转推的推特的 ID 。 两个助手函数 store_last_id 和 get_last_id 将会帮助存储和保存这个 ID。

然后,机器人使用 tweepy 搜索 API 来查找 Fedora Magazine 的最近的推特并存储这个 ID。

  1. import tweepy
  2. def store_last_id(tweet_id):
  3. """ Stores a tweet id in text file """
  4. with open('lastid', 'w') as fp:
  5. fp.write(str(tweet_id))
  6. def get_last_id():
  7. """ Retrieve the list of tweets that were
  8. already retweeted """
  9. with open('lastid') as fp:
  10. return fp.read()
  11. if __name__ == '__main__':
  12. auth = tweepy.OAuthHandler("your_consumer_key", "your_consumer_key_secret")
  13. auth.set_access_token("your_access_token", "your_access_token_secret")
  14. api = tweepy.API(auth)
  15. try:
  16. last_id = get_last_id()
  17. except FileNotFoundError:
  18. print("No retweet yet")
  19. last_id = None
  20. for tweet in tweepy.Cursor(api.search, q="fedoramagazine.org", since_id=last_id).items():
  21. if tweet.user.name == 'Fedora Project':
  22. store_last_id(tweet.id)
  23. #tweet.retweet()
  24. print(f'"{tweet.text}" was retweeted')

为了只转推 Fedora Magazine 的推特 ,机器人搜索内容包含 fedoramagazine.org 和由 「Fedora Project」 Twitter 账户发布的推特。

结论

在这篇文章中你看到了如何使用 tweepy 的 Python 库来创建一个自动阅读、发送和搜索推特的 Twitter 应用。现在,你能使用你自己的创造力来创造一个你自己的 Twitter 机器人。

下边有Python的基础学习资料,可以免费领取。

很多人在问,学习Python读什么书,这其实是一个非常通用的问题,学习分为三种方式:看书、上课,而读书学习是最实惠也是最高效的一种,小编整理了一些Python高分书籍给大家,从0基础到高级适合不同学习阶段,希望大家学习愉快。获取方式:点击小编头像,关注后私信回复“资料”即可下载。

学习如何使用 Python 构建你自己的 Twitter 机器人


分享到:


相關文章: