如何使用Python 通過3 個非常簡單的步驟製作一個自主的Twitter 機器人? | 由Rahula Raj | 首都| 2021 年11 月


Twitter 很可能是使用最廣泛的非正式社區。對於一些協會和個人來說,擁有令人難以置信的Twitter 存在是保持人群鎖定的重要因素。

擁有令人難以置信的Twitter 存在的一部分包括通過新的推文和轉推保持你的記錄動態,跟踪迷人的記錄并快速回复你的支持者的消息。你可以通過體力完成這項工作,但這可能需要大量時間。在所有條件相同的情況下,你可以依賴Twitter 機器人,該程序可以將你的全部或部分Twitter 操作機械化。這將是一個簡單而快速的教學練習,可利用Python 語言和Tweepy 庫製作一個基本的Twitter 機器人。

推特API

Twitter API 使工程師可以使用Twitter 的大部分功能。你可以利用API 來仔細閱讀和組合由Twitter 物質(如推文、客戶端和模式)標識的數據。

實際上,API 發現了許多標識為的HTTP 端點:

推文轉推喜好直接消息首選圖案媒體

正如我們稍後將看到的,Tweepy 提供了一種無需管理低級細節即可調用這些HTTP 端點的方法。

Twitter API 使用OAuth(一種普遍使用的開放批准約定)來驗證每個請求。在對Twitter API 做出任何決定之前,你真的很想製作和設計你的確認證書。在本文的後面,你將發現這方面的明確方向。

你可以使用Twitter API 來組裝各種類型的機械化,例如機器人、調查和不同的設備。請記住,Twitter 強制執行有關你可以和不能利用其API 製造什麼的特定限制和策略。這樣做是為了確保客戶有一個體面的遭遇。禁止改進設備以發送垃圾郵件、欺騙客戶等。

Twitter API 還強制限制了關於如何不時允許你使用API 技術的速率限制。萬一你超過這些截止點,你將需要等待5 到15 分鐘的時間,才能再次使用API。你應該在計劃和執行機器人時考慮這一點,以避免出現多餘的停頓。

你可以在其權威文檔中發現有關Twitter API 的方法和截止點的更多數據:

什麼是特威皮?

Tweepy 是一個開源Python 包,它為你提供了一種使用Python 訪問Twitter API 的非常有利的方式。 Tweepy 結合了一系列用於處理Twitter 模型和API 端點的類和策略,並且它可以直接處理不同的執行細節,例如,

信息編碼和解密HTTP 需求結果分頁OAuth 驗證速率限制流

如果你沒有使用Tweepy,你將需要管理與HTTP 需求、信息序列化、確認和速率限制有關的低級細節。這可能很乏味並且容易出錯。在所有條件相同的情況下,由於Tweepy,你可以將需要構建的有用性歸零。

實際上,Twitter API 提供的所有用處都可以通過Tweepy 加以利用。從版本3.7.0 開始,當前的主要限制是,由於Twitter API 中的一些新更改,直接消息無法按預期工作。

步驟1:導入庫

Twitter API 使設計人員可以使用Twitter 的大部分用途。你可以利用API 來仔細閱讀和組合由Twitter 物質(如推文、客戶端和模式)標識的數據。

在Twitter 上安排設計師的記錄以獲取令牌和密鑰。

製作Twitter API 身份驗證憑據

正如我們最近看到的,Twitter API 要求所有請求都使用OAuth 進行驗證。因此,你希望進行必要的確認認證,以便可以選擇使用API。這些限定條件是四個文本字符串:

消費者密鑰消費者秘密訪問令牌訪問秘密

如果你目前擁有Twitter 客戶帳戶,請按照以下方式製作密鑰、令牌和特權見解。在任何情況下,你都需要先以Twitter 客戶身份加入,然後才能繼續。

申請推特開發者賬號

前往Twitter 開發者網站申請創作者賬號。在這裡,你需要選擇對此記錄負責的Twitter 客戶端。最有可能是你或你的協會。這是這個頁面的樣子:

對於這種情況,我決定利用我自己的記錄。

然後,Twitter 需要一些有關你打算如何使用工程帳戶的數據,如下所示:

你需要確定設計者帳戶名稱,無論你是打算將其用於個人目的還是用於你的協會。

第2 階段:創建應用程序

Twitter 將確認認證授予應用程序,而不是帳戶。應用程序可以是使用Twitter API 的任何設備或機器人。因此,你確實希望註冊你的應用程序,以便可以選擇解決API 決策。

要註冊你的應用程序,請轉到你的Twitter 應用程序頁面並選擇創建應用程序選項。

你確實想提供有關你的應用程序及其動機的隨附數據:

應用程序名稱:用於識別你的應用程序的名稱(如模型機器人)

應用程序描述:應用程序背後的動機(例如,真實Python 文章的模型機器人)。

你或你的應用程序的站點URL: 必需,但可以是你自己站點的URL,因為機器人不需要為工作而煩惱URL。

應用程序的使用:客戶端將如何使用你的應用程序(例如,此應用程序是一個機器人,因此會對客戶端做出反應)。

步驟3:創建身份驗證憑據

要創建身份驗證憑據,請轉到你的Twitter 應用程序頁面。應用程序頁面如下所示:

你將在此處找到應用程序的“詳細信息”按鈕。單擊此按鈕會將你帶到下一頁,你可以在其中生成憑據。

通過選擇Keys and tokens 選項卡,你可以生成並複制密鑰、令牌和秘密以在你的代碼中使用它們:

生成憑據後,將其保存以供以後在代碼中使用。

你可以使用以下代碼段測試憑據:

import tweepyfrom tkinter import *consumer_key= ”consumer_secret=”access_token=”access_token_secret=”auth = tweepy.OAuthHandler(consumer_key, consumer_secret)auth.set_access_token(access_token, access_token_apithuser).API = (auth) .me()print(user.name)print(user.location)第2 步:設置GUI

在這裡,我們使用標籤來設置搜索文本以及你希望為其提供什麼響應。

root = Tk()label1 = Label( root, text=”Search”)E1 = Entry(root, bd =5)label2 = Label( root, text=”Number of Tweets”)E2 = Entry(root, bd =5 )label3 = Label( root, text=”Response”)E3 = Entry(root, bd =5)label4 = Label( root, text=”Reply?”)E4 = Entry(root, bd =5)label5 = Label( root, text=”Retweet?”)E5 = Entry(root, bd =5)label6 = Label( root, text=”Favorite?”)E6 = Entry(root, bd =5)label7 = Label( root, text= “跟隨?”)E7 = Entry(root, bd =5)def getE1():return E1.get()def getE2():return E2.get()def getE3():return E3.get()def getE4 ():return E4.get()def getE5():return E5.get()def getE6():return E6.get()def getE7():return E7.get()Step 3: Retweet, Follow, Reply

該功能會分析你的反應並執行預期的操作。這是一個簡單的switch 語句,每個響應都會觸發相應的tweepy 函數。

def mainFunction():getE1()search = getE1()getE2()numberOfTweets = getE2()numberOfTweets = int(numberOfTweets)getE3()phrase = getE3()getE4()reply = getE4()getE5()retweet = getE5( )getE6()favorite = getE6()getE7()follow = getE7()if reply == “yes”:for tweet in tweepy.Cursor(api.search, search).items(numberOfTweets):try:#Replyprint(‘ n推文:@’ + tweet.user.screen_name)print(‘ID: @’ + str(tweet.user.id))tweetId = tweet.user.idusername = tweet.user.screen_nameapi.update_status(“@” +用戶名+“”+短語,in_reply_to_status_id = tweetId)print(“回复”+短語)除了tweepy.TweepError as e:print(e.reason)except StopIteration:breakif retweet == “yes”:for tweet in tweepy.Cursor (api.search, search).items(numberOfTweets):try:#Retweettweet.retweet()print(‘轉發推文’)except tweepy.TweepError as e:print(e.reason)except StopIteration:breakif favorite ==“ yes”:對於tweepy.Cursor(api.search, search).items(numberOfTweets):try:#Favoritetweet.favorite()print(‘Favorite the tweet’)except tweepy.TweepError as e:print(e.reason)except StopIteratio n:breakif follow == “yes”:for tweet in tweepy.Cursor(api.search, search).items(numberOfTweets):try:#Followtweet .user.follow()print(‘Followed the user’)except tweepy.TweepError as e:print(e.reason)except StopIteration:breaksubmit = Button(root, text =”Submit”, command = mainFunction)label1.pack( )E1.pack()label2.pack()E2.pack()label3.pack()E3.pack()label4.pack()E4.pack()label5.pack()E5.pack()label6.pack( )E6.pack()label7.pack()E7.pack()submit.pack(side =BOTTOM)root.mainloop()

覺得這篇文章有用嗎?在Medium 上關注我(Rahula Raj)並查看下面我最受歡迎的文章請👏這篇文章分享給大家

_______________________******** ____________________________

開放合作請通過rahular2020@iimbg.ac.in 與我聯繫。

_______________________******** ____________________________

資訊來源:由0x資訊編譯自THECAPTAL。版權歸作者所有,未經許可,不得轉載

Total
0
Shares
Related Posts