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

關注頭條號,私信回覆資料會有意外驚喜呦………………最後一張照片有資料呦。

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

Twitter 允許用戶將博客帖子和文章分享[1]給全世界。使用 Python 和 Tweepy 庫使得創建一個 Twitter 機器人來接管你的所有的推特變得非常簡單。這篇文章告訴你如何去構建這樣一個機器人。希望你能將這些概念也同樣應用到其他的在線服務的項目中去。

開始

tweepy[2] 庫可以讓創建一個 Twitter 機器人的過程更加容易上手。它包含了 Twitter 的 API 調用和一個很簡單的接口。

下面這些命令使用 pipenv 在一個虛擬環境中安裝 tweepy。如果你沒有安裝 pipenv,可以看一看我們之前的文章如何在 Fedora 上安裝 Pipenv[3]。

  1. $ mkdir twitterbot
  2. $ cd twitterbot
  3. $ pipenv --three
  4. $ pipenv install tweepy
  5. $ pipenv shell
學習如何使用 Python 構建你自己的 Twitter 機器人

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

” 中找到。

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

向下滾動頁面,使用“創建我的訪問令牌

Create my access token

”按鈕生成一個“訪問令牌

Access Token

” 和一個“訪問令牌密鑰

Access Token Secret”。

使用 Tweppy —— 輸出你的時間線

現在你已經有了所需的憑證了,打開一個文件,並寫下如下的 Python 代碼。

  1. import tweepy
  2. auth = tweepy.OAuthHandler("your_consumer_key", "your_consumer_key_secret")
  3. auth.set_access_token("your_access_token", "your_access_token_secret")
  4. api = tweepy.API(auth)
  5. public_tweets = api.home_timeline()
  6. for tweet in public_tweets:

print(tweet.text)

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


在確保你正在使用你的 Pipenv 虛擬環境後,執行你的程序。

  1. $ python tweet.py

上述程序調用了 home_timeline 方法來獲取到你時間線中的 20 條最近的推特。現在這個機器人能夠使用 tweepy 來獲取到 Twitter 的數據,接下來嘗試修改代碼來發送 tweet。

使用 Tweepy —— 發送一條推特

要發送一條推特 ,有一個容易上手的 API 方法 update_status 。它的用法很簡單:

  1. api.update_status("The awesome text you would like to tweet")

Tweepy 拓展為製作 Twitter 機器人準備了非常多不同有用的方法。要獲取 API 的詳細信息,請查看文檔[5]。

一個雜誌機器人

接下來我們來創建一個搜索 Fedora Magazine 的推特並轉推這些的機器人。

為了避免多次轉推相同的內容,這個機器人存放了最近一條轉推的推特的 ID 。 兩個助手函數 store_last_id 和 get_last_id 將會幫助存儲和保存這個 ID。

然後,機器人使用 tweepy 搜索 API 來查找 Fedora Magazine 的最近的推特並存儲這個 ID。

  1. import tweepy
  2. def store_last_id(tweet_id):
  3. """ Stores a tweet id in text file """
  4. with open('lastid', 'w') as fp:
  5. fp.write(str(tweet_id))
  6. def get_last_id():
  7. """ Retrieve the list of tweets that were
  8. already retweeted """
  9. with open('lastid') as fp:
  10. return fp.read()
  11. if __name__ == '__main__':
  12. auth = tweepy.OAuthHandler("your_consumer_key", "your_consumer_key_secret")
  13. auth.set_access_token("your_access_token", "your_access_token_secret")
  14. api = tweepy.API(auth)
  15. try:
  16. last_id = get_last_id()
  17. except FileNotFoundError:
  18. print("No retweet yet")
  19. last_id = None
  20. for tweet in tweepy.Cursor(api.search, q="fedoramagazine.org", since_id=last_id).items():
  21. if tweet.user.name == 'Fedora Project':
  22. store_last_id(tweet.id)
  23. #tweet.retweet()
  24. print(f'"{tweet.text}" was retweeted')

為了只轉推 Fedora Magazine 的推特 ,機器人搜索內容包含 fedoramagazine.org 和由 「Fedora Project」 Twitter 賬戶發佈的推特。

結論

在這篇文章中你看到了如何使用 tweepy 的 Python 庫來創建一個自動閱讀、發送和搜索推特的 Twitter 應用。現在,你能使用你自己的創造力來創造一個你自己的 Twitter 機器人。

下邊有Python的基礎學習資料,可以免費領取。

很多人在問,學習Python讀什麼書,這其實是一個非常通用的問題,學習分為三種方式:看書、上課,而讀書學習是最實惠也是最高效的一種,小編整理了一些Python高分書籍給大家,從0基礎到高級適合不同學習階段,希望大家學習愉快。獲取方式:點擊小編頭像,關注後私信回覆“資料”即可下載。

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


分享到:


相關文章: