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

开始

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

下面这些命令使用 pipenv 在一个虚拟环境中安装 tweepy。如果你没有安装 pipenv,可以看一看我们之前的文章如何在 Fedora 上安装 Pipenv。$ mkdir twitterbot$ cd twitterbot$ pipenv --three$ pipenv install tweepy$ pipenv shell

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” 中找到。

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

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

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

auth = tweepy.OAuthHandler("your_consumer_key", "your_consumer_key_secret")

auth.set_access_token("your_access_token", "your_access_token_secret")

api = tweepy.API(auth)

public_tweets = api.home_timeline()

for tweet in public_tweets:

print(tweet.text)

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

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

使用 Tweepy —— 发送一条推特

要发送一条推特 ,有一个容易上手的 API 方法 update_status 。它的用法很简单:api.update_status("The awesome text you would like to tweet")

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

一个杂志机器人

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

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

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

""" Stores a tweet id in text file """

with open('lastid', 'w') as fp:

fp.write(str(tweet_id))def get_last_id():

""" Retrieve the list of tweets that were

already retweeted """

with open('lastid') as fp:        return fp.read()if __name__ == '__main__':

auth = tweepy.OAuthHandler("your_consumer_key", "your_consumer_key_secret")

auth.set_access_token("your_access_token", "your_access_token_secret")

api = tweepy.API(auth)    try:

last_id = get_last_id()    except FileNotFoundError:

print("No retweet yet")

last_id = None

for tweet in tweepy.Cursor(api.search, q="fedoramagazine.org", since_id=last_id).items():        if tweet.user.name  == 'Fedora Project':

store_last_id(tweet.id)            #tweet.retweet()

print(f'"{tweet.text}" was retweeted')

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

结论

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

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

python机器人方向怎么学_学习如何使用 Python 构建你自己的 Twitter 机器人相关推荐

  1. python人工智能方向怎么学_人工智能方向需要学习python或是深度学习呢?

    要回答这个问题,首先,我们先了解一下什么是Python和深度学习,各用于什么领域?了解了这两个问题,对于人工智能方向是需要学什么?先学什么?都会有一台清晰的答案. 一.Python Python是一种 ...

  2. python人工智能方向怎么学_如何学习人工智能

    人工智能(Artificial Intelligence),英文缩写为AI它是研究.开发用于模拟.延伸和扩展人的智能的理论.方法.技术及应用系统的一门新的技术科学.现在随着时代的发展,AI的应用也越来 ...

  3. python爬虫新浪新闻_学习了《python网络爬虫实战》第一个爬虫,爬取新浪新闻

    请安装anaconda,其中附带的spyder方便运行完查看变量 1.进入cmd控制台, 输入 pip install BeautifulSoup4 pip install requests 2.编写 ...

  4. python判别性别的代码_学习文章—(Python实践)Python实现手机号自动判断男女性别...

    作者:西西里传说 来源:CSDN博客 链接:https://blog.csdn.net/qq_15687823/article/details/103645268 如果你觉得有用欢迎关注我吧 本文性别 ...

  5. python编程思维导图_用来梳理 Python 编程核心知识15张思维导图

    原标题:用来梳理 Python 编程核心知识15张思维导图 小编这次在逛论坛的时候,无意中发现了一份python的武功秘籍,也就是一份思维导图,堪称业界经典! 思维导图可以有力地激发你的联想,通过一个 ...

  6. python学什么方向就业好_学习python就业方向都有哪些?

    谢邀 我在学习的过程中,深深的觉得对于成人或者进入职场的人来说,学习一门新的知识,目的不在于积累,而在于解决问题. 所以这就要求我想明白3个问题: 1).学习python,要解决什么问题? 2).要学 ...

  7. 学python的有哪些好书_学习python有哪些好书和学习方法?

    不请自来~ 上干货 <Python数据分析>作者: [印尼]Ivan Idris Python是一种多范型编程语言,既适用于面向对象的应用开发,又适合函数式设计模式.Python已经成为数 ...

  8. python人工智能方向面试准备_人工智能实战就业(面试)学习路线图

    这个项目是干什么的? 整理这个项目的初衷是方便同学们快速开启人工智能自学计划,在学习过程中少走弯路用最快的效率入门Ai并开始实战项目, 提供了近200个Ai实战案例和项目,这些并不是网上搜集来的,而是 ...

  9. python初学往哪个方向比较容易_学习Python应该往哪个方向发展?

    先回答题主正题,学完Python有这些方向可发展. 第一:Python web开发 学完Python可以做web开发,因为现在中国学习Python的比较少,而招聘Python的却非常的多.所以Pyth ...

最新文章

  1. UI基本控键UIView ,UILabel,UITextField ,UIButton,UIAlertView
  2. java.lang.OutOfMemoryError:GC overhead limit exceeded
  3. java nginx 例子_Java及nginx实现文件权限控制代码实例
  4. c语言的四个函数,C语言学习之动态内存分配的四个函数
  5. php把时间戳改为时间格式,php怎么把时间格式转换为时间戳?
  6. ML、DL、CNN学习记录5
  7. oracle database link创建
  8. VScode使用Git拉取代码到本地提示“在签出前,请清理存储工作树”
  9. Go语言:生成随机数
  10. [转]灯灯小程序开发手记:仿今日头条(上)
  11. PDF资源:Windows程序设计、Python3网络爬虫开发实战
  12. IBATIS开发指南(夏昕)
  13. mac修改eclipse的内存配置
  14. HDU6598 Harmonious Army
  15. “0基础考生考前三小时突破《申论》80分气哭学霸”——公文题(宣传类+评论类)
  16. 【最全】ISTQB- FL模拟题(含答案)
  17. HTML 语法教学之连结标签
  18. QT学习串口编程之串口软件的UI设计
  19. 使用Synopsys VCS使用constraint遇到的一个奇怪问题
  20. 红米5双清_红米5刷recovery教程_红米5第三方中文recovery下载

热门文章

  1. python32位系统下载_pythonwin下载-PythonWin 32位(Python集成开发环境) 3.6 官方版 - 河东下载站...
  2. 手机python 3.8解释器_不看后悔!Python 3.8 新功能大揭秘
  3. python numpy逆_关于python:为什么numpy和scipy中的矩阵求逆函数对于大的二次矩阵返回不同的结果?...
  4. html创建表单用设么,如何使用HTML创建表单的发送
  5. 对象测试_心理测试:你会选择跟对象去吃什么夜宵?测你治愈失恋的方法是什么...
  6. 胜利大逃亡 三维BFS
  7. 蓝桥杯 2018年预赛C语言大学B组 C/C++
  8. 机器学习入门笔记(四):朴素贝叶斯分类
  9. RecSys Challenge 历年推荐赛题汇总
  10. 协作开发——使用git在多台机器上实现协作开发