申请专栏作者
投稿发布
您的当前位置:主页 > 机器人 > 正文

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

来源:未知 时间:2018-09-02
请点击下面的广告后浏览!

?

可思yabo88滚球-yabo88滚球挖掘,智慧医疗,机器视觉,机器人sykv.com

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

开始

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

可思yabo88滚球sykv.com,sykv.cn

下面这些命令使用?pipenv?在一个虚拟环境中安装 tweepy。如果你没有安装?pipenv,可以看一看我们之前的文章如何在 Fedora 上安装 Pipenv可思yabo88滚球sykv.com

 可思yabo88滚球sykv.com,sykv.cn 
  1. $ mkdir twitterbot
  2. $ cd twitterbot
  3. $ pipenv --three
  4. $ pipenv install tweepy
  5. $ pipenv shell

Tweepy —— 开始

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

可思yabo88滚球sykv.com,sykv.cn

创建一个新的 Twitter 应用

当你填完了表格并点击了“创建你自己的 Twitter 应用Create your Twitter application”的按钮后,你可以获取到该应用的凭证。 Tweepy 需要用户密钥API Key用户密码API Secret,这些都可以在 “密钥和访问令牌Keys and Access Tokens” 中找到。

可思yabo88滚球sykv.com,sykv.cn

可思yabo88滚球-人工智能资讯平台sykv.com

向下滚动页面,使用“创建我的访问令牌Create my access token”按钮生成一个“访问令牌Access Token” 和一个“访问令牌密钥Access Token Secret”。 可思yabo88滚球sykv.com

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

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

可思yabo88滚球-www.sykv.cn,sykv.com

 

可思yabo88滚球sykv.com,sykv.cn

  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:
  7. print(tweet.text)

在确保你正在使用你的 Pipenv 虚拟环境后,执行你的程序。 可思yabo88滚球-yabo88滚球挖掘,智慧医疗,机器视觉,机器人sykv.com

 

可思yabo88滚球sykv.com,sykv.cn

  1. $ python tweet.py

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

可思yabo88滚球-人工智能资讯平台sykv.com

使用 Tweepy —— 发送一条推特

要发送一条推特 ,有一个容易上手的 API 方法?update_status?。它的用法很简单: 内容来自可思yabo88滚球sykv.com

 可思yabo88滚球-AI,sykv.com智能驾驶,人脸识别,区块链,大yabo88滚球 
  1. api.update_status("The awesome text you would like to tweet")

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

可思yabo88滚球sykv.com

一个杂志机器人

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

可思yabo88滚球-www.sykv.cn,sykv.com

为了避免多次转推相同的内容,这个机器人存放了最近一条转推的推特的 ID 。 两个助手函数?store_last_id?和?get_last_id?将会帮助存储和保存这个 ID。 可思yabo88滚球-yabo88滚球挖掘,智慧医疗,机器视觉,机器人sykv.com

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

可思yabo88滚球-人工智能资讯平台sykv.com

 

可思yabo88滚球-AI,sykv.com智能驾驶,人脸识别,区块链,大yabo88滚球

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

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

可思yabo88滚球-www.sykv.cn,sykv.com

结论

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

可思yabo88滚球-www.sykv.cn,sykv.com

这篇文章的演示源码可以在?Github?找到。

可思yabo88滚球-yabo88滚球挖掘,智慧医疗,机器视觉,机器人sykv.com

网友评论:

发表评论
请自觉遵守互联网相关的政策法规,严禁发布色情、暴力、反动的言论。
评价:
表情:
用户名: 验证码:点击我更换图片 匿名?

关于我们?? 免责声明?? 广告合作?? 版权声明?? 联系方式?? 原创投稿?? 网站地图??

Copyright?2005-2019 Sykv.com 可思yabo88滚球 版权所有 ?? ICP备案:京ICP备14056871号

人工智能资讯?? 人工智能资讯?? 人工智能资讯?? 人工智能资讯

?扫码入群
咨询反馈
扫码关注

微信公众号

返回顶部
关闭