欢迎回来｡
是时候做点什么了
我们的Twitter机器人确实很有效率｡
那我们能做些什么呢？
我想创造一个机器人｡
这个机器人会很好, 你想对你的追随者很好, 你想追随人们｡
如果你仔细看, 我我真的很可怕.
我只跟踪了六个人｡
但如果我必须通过我所有的追随者并关注他们中的每一个人, 那就是超过10,000次点击｡
这是一个相当手动的任务｡
我们的机器人能做到吗？
嗯, 是的, 你可以｡
所以我们来做一个超级慷慨的机器人｡
所以这个慷慨的机器人总是会跟着回来｡
你怎么能建造这个？
我们简单地循环并声明为follower｡
进去｡
然后这里, T 页：1 给了我们一个叫做光标的东西｡
这个光标是什么？
如果我们在这里找到文档, 然后输入cursor｡
我们将得到一个实际的光标教程｡
如果我们读到这里, 我们会发现我们在很多Twitter API中都使用了分页｡
无论是时间线､ 用户列表还是消息｡
我们必须点击不同的页面, 对不对？
通常会有很多关注者或者很多时间线信息｡
所以光标让我们, 嗯,
基本上以一种简单的方式, 浏览Twitter上的所有内容, 无论是浏览整个时间线还是浏览整个关注者列表, 他们甚至给予你一个很好的如何使用它的教程｡
你可以看到这里, 比如说, 让我们把它放大一点｡
我们看到, 我们可以使用precursor来做API用户时间线项, 以获取时间线上的所有项｡
因此, 使用游标, 我们实际上可以执行api点｡
追随者抓取所有追随者｡
然后我们简单地做点项目｡
这样我们就可以遍历所有的追随者｡
现在, 有了这个追随者｡
好吧, 我们把它们打印出来吧｡
现在我要输出followers或者followers因为我们在这里循环, 然后输入. name.
现在, 问题是, 当我们这样做时,
当我们循环遍历很多东西时, 我们将一遍又一遍地访问API｡
而Twitter不会喜欢这样｡
我的意思是, 这是一个简单的例子, 但是当我们不断地点击Twitter的API, Twitter的服务器, 这是Twitter必须支付的,
如果世界上的每个人都点击Twitter的API, 一遍又一遍, 快速, 让我们说Python,
这, 正如我们所知, 在机器上运行真的很快｡
这会让服务器超载, 会让他们损失很多钱, 或者让服务器崩溃｡
因此, 他们实际上实现了一个叫做速率限制的东西, 我只允许请求Twitter
API, 比如说每隔几毫秒, 这样就不会使服务器崩溃,
实际上允许我们使用这个Twitter速率限制｡
所以如果我在这里输入速率限制器｡
实际上有一个错误｡
您可以在这里看到速率限制错误, 当API方法由于达到Twitter的速率限制而失败时, 会引发该错误｡
这里的推文B允许我们使用速率限制错误来说, 嘿, 如果我们遇到这个错误, 让我们做点什么｡
所以我要创建一个辅助函数｡
我要说的是定义极限句柄｡
因此, 我们将在这里处理限制, 并将其传递给光标,
同样, 该光标将显示passionate或遍历API追随者的整个数据｡
我们要做一个疯狂循环来证明while this is true.
继续屈服｡
游标｡
小点下｡
因为游标是一个生成器｡
然而, 每当我们在这里不断调用next时, 顺便说一下, 在内部, 这就是光标正在做的事情,
就是不断地调用next, 然后继续下去｡
继续下去直到我们干掉追随者｡
然｡
如果不是这样｡
好吧, 既然如此, 我就说｡
除了｡
实际上, 我们要把它包起来｡
所以我在这里尝试一下, 这样我们就可以捕捉到这个错误｡
所以试试看｡
然后就｡
除了｡
如果我们得到一个茶壶速率限制错误｡
好吧, 在这种情况下, 我想暂停一下, 不要点击Twitter API, 这样我们就不会遇到麻烦,
当我们最终给它一点时间时, 我们就不会再回来了｡
所以我们可以用Python内置的时间模块来实现这个功能, 时间模块让我们可以做一些非常有用的事情｡
我可以做一个叫做睡眠的动作, 它本质上是说, 嘿, 暂停一下, 不管发生了什么,
只要在这条线上停留几毫秒｡
所以如果我们做1000, 那就是1000毫秒或1/2｡
现在我们有了一个限制句柄, 或者我们可以称之为限制句柄｡
如果我们包装limit处理程序, 它接收一个游标, 那么我们就包装了整个过程｡
就像这样｡
让我们把这个放大一点｡
你去那里｡
我们现在能够不滥用, 并确保如果我们达到了raid限制, 我们采取了一点暂停, 而不是只得到错误｡
让我们看看这是否有效｡
我要去保存｡
运行我们的代码｡
把这里清理干净然后开始｡
好吧, 我会的
D. C. C. , 它现在是如何暂停的｡
所以一旦我们达到速率限制, 它就暂停了｡
而且它还在继续｡
就这样｡
它会打印出我所有的追随者｡
很酷吧？
现在我要停止它, 因为它还在继续｡
但我们现在能做的是, 我们可以跟踪每一个人｡
现在, 就我而言, 我不怎么上Twitter, 所以让我们随机关注一个人｡
让我们关注这个用户｡
我将像这样复制这个用户的名字, 我将在这里做一些有趣的事情｡
我会说如果｡
跟随者的点号名称等于此人｡
好吧, 那么, 那样的话, 我想跟着这个人｡
所以我要说｡
跟着她的圆点｡
Follow, 允许我关注用户｡
如果我保存它并运行我的代码, 它就会运行｡
它在跑, 它在跑｡
就像我说的, 这需要一点时间, 因为它必须浏览整个列表｡
但我会暂停视频, 当这一切结束时, 我们会看看这是否有效｡