學習如何使用Python 構建你自己的Twitter 機器人 - 摸鱼
文章推薦指數: 80 %
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應用”的按鈕後,你可以獲取到該應用的憑證。
Tweepy需要使用者金鑰和使用者密碼,這些都可以在“金鑰和訪問令牌”中找到。
向下滾動頁面,使用“建立我的訪問令牌”按鈕生成一個“訪問令牌”和一個“訪問令牌金鑰”。
使用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
延伸文章資訊
- 1Team Collaboration - Webex | Twitter 機器人
適用於Webex 的Twitter 機器人可讓您將Twitter 帳戶與Webex 空間綁定。 綁定您的空間,即能收到可自訂的通知(如@mentions、直接訊息和主題標籤), ...
- 2「你」是機器人或人類?遏止假消息,Twitter 將公開標籤 ...
以後閱讀Twitter 上貼文時,可以先確認一下:這是機器人帳號還是人類帳號所發佈的貼文?#趨勢,Twitter,機器人,Bot,紀念帳號,假消息, ...
- 3【Discord】如何推播Twitter 推文到Discord 特定頻道 - HackMD
選擇 要傳送訊息的頻道 ,替自動推播機器人 命名 與 修改頭像 並複製這時出現的網址,第11 步會用到. 在 IFTTT 上註冊帳號 (可直接使用其他網站帳號登入).
- 4Twitter 新推出「機器人帳戶」推播認證功能 - INSIDE
現今在許多社群平台如Line、Messenger 皆有推出其專屬的Chatbot 功能,有別於傳統大家對Chatbot 的認知,推特近期發表了全新的「機器人帳戶」測試功能。該 ...
- 5學習如何使用Python 構建你自己的Twitter 機器人 - 摸鱼
Twitter 允許使用者將部落格帖子和文章分享給全世界。使用Python 和Tweepy 庫使得建立一個Twitter 機器人來接管你的所有的推特變得非常簡單。這篇文章告訴你如何去構建 ...