學習如何使用Python 構建你自己的Twitter 機器人 - 摸鱼

文章推薦指數: 80 %
投票人數:10人

Twitter 允許使用者將部落格帖子和文章分享給全世界。

使用Python 和Tweepy 庫使得建立一個Twitter 機器人來接管你的所有的推特變得非常簡單。

這篇文章告訴你如何去構建 ... 首页 推廣 學習如何使用Python構建你自己的Twitter機器人 0 推廣 • linuxcn • 于2019-11-1419:59:46 • 157阅读 Twitter允許使用者將部落格帖子和文章分享給全世界。

使用Python和Tweepy庫使得建立一個Twitter機器人來接管你的所有的推特變得非常簡單。

這篇文章告訴你如何去構建這樣一個機器人。

希望你能將這些概念也同樣應用到其他的線上服務的專案中去。

開始 tweepy庫可以讓建立一個Twitter機器人的過程更加容易上手。

它包含了Twitter的API呼叫和一個很簡單的介面。

下面這些命令使用pipenv在一個虛擬環境中安裝tweepy。

如果你沒有安裝pipenv,可以看一看我們之前的文章如何在Fedora上安裝Pipenv。

$mkdirtwitterbot $cdtwitterbot $pipenv--three $pipenvinstalltweepy $pipenvshell Tweepy——開始 要使用TwitterAPI,機器人需要通過Twitter的授權。

為了解決這個問題,tweepy使用了OAuth授權標準。

你可以通過在https://apps.twitter.com/建立一個新的應用來獲取到憑證。

建立一個新的Twitter應用 當你填完了表格並點選了“建立你自己的Twitter應用CreateyourTwitterapplication”的按鈕後,你可以獲取到該應用的憑證。

Tweepy需要使用者金鑰APIKey使用者密碼APISecret,這些都可以在“金鑰和訪問令牌KeysandAccessTokens”中找到。

向下滾動頁面,使用“建立我的訪問令牌Createmyaccesstoken”按鈕生成一個“訪問令牌AccessToken”和一個“訪問令牌金鑰AccessTokenSecret”。

使用Tweppy——輸出你的時間線 現在你已經有了所需的憑證了,開啟一個檔案,並寫下如下的Python程式碼。

importtweepy 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() fortweetinpublic_tweets: print(tweet.text) 在確保你正在使用你的Pipenv虛擬環境後,執行你的程式。

$pythontweet.py 上述程式呼叫了home_timeline方法來獲取到你時間線中的20條最近的推特。

現在這個機器人能夠使用tweepy來獲取到Twitter的資料,接下來嘗試修改程式碼來傳送tweet。

使用Tweepy——傳送一條推特 要傳送一條推特,有一個容易上手的API方法update_status。

它的用法很簡單: api.update_status("Theawesometextyouwouldliketotweet") Tweepy拓展為製作Twitter機器人準備了非常多不同有用的方法。

要獲取API的詳細資訊,請檢視文件。

一個雜誌機器人 接下來我們來建立一個搜尋FedoraMagazine的推特並轉推這些的機器人。

為了避免多次轉推相同的內容,這個機器人存放了最近一條轉推的推特的ID。

兩個助手函式store_last_id和get_last_id將會幫助儲存和儲存這個ID。

然後,機器人使用tweepy搜尋API來查詢FedoraMagazine的最近的推特並儲存這個ID。

importtweepy defstore_last_id(tweet_id): """Storesatweetidintextfile""" withopen('lastid','w')asfp: fp.write(str(tweet_id)) defget_last_id(): """Retrievethelistoftweetsthatwere alreadyretweeted""" withopen('lastid')asfp: returnfp.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() exceptFileNotFoundError: print("Noretweetyet") last_id=None fortweetintweepy.Cursor(api.search,q="fedoramagazine.org",since_id=last_id).items(): iftweet.user.name=='FedoraProject': store_last_id(tweet.id) #tweet.retweet() print(f'"{tweet.text}"wasretweeted') 為了只轉推FedoraMagazine的推特,機器人搜尋內容包含fedoramagazine.org和由「FedoraProject」Twitter賬戶釋出的推特。

結論 在這篇文章中你看到了如何使用tweepy的Python庫來建立一個自動閱讀、傳送和搜尋推特的Twitter應用。

現在,你能使用你自己的創造力來創造一個你自己的Twitter機器人。

這篇文章的演示原始碼可以在Github找到。

via:https://fedoramagazine.org/learn-build-twitter-bot-python/ 作者:ClémentVerna 選題:lujun9972 譯者:Bestony 校對:wxy 本文由LCTT原創編譯,Linux中國榮譽推出 关注 收藏 × 备注内容 附加备注,使用此功能的话,会给所有参加过讨论的人发送通知. 关闭 提交 回复总数:0 暂无回复 发表回复 需要登录后方可回复,如果你还没有账号请点击这里注册。

摸鱼- 注册 已注册用户请登录 同节点推荐 1024程式設計師節,百度雲送禮啦!僅此一天,先到先得。

1024程式設計師日~今天沒有Bug!printf("Hello,Gift!")(福利貼) 程式設計師節送無線充電寶和快樂肥宅水怎麼樣? 1024最便宜的豬肉 1024程式猿節日福利大放送! 為了慶祝1024程式媛節,我做了款原創絲巾 10個音響,30本優質前端書籍抽獎,週五下班前開獎 Flutter核心原理之Widget、Element和RenderObject的圖片版本! 小贴士 统计信息 社区会员:69081 主题数:206571 回帖数:1871657



請為這篇文章評分?