關注頭條號,私信回覆資料會有意外驚喜呦………………最後一張照片有資料呦。
Twitter 允許用戶將博客帖子和文章分享[1]給全世界。使用 Python 和 Tweepy 庫使得創建一個 Twitter 機器人來接管你的所有的推特變得非常簡單。這篇文章告訴你如何去構建這樣一個機器人。希望你能將這些概念也同樣應用到其他的在線服務的項目中去。
開始
tweepy[2] 庫可以讓創建一個 Twitter 機器人的過程更加容易上手。它包含了 Twitter 的 API 調用和一個很簡單的接口。
下面這些命令使用 pipenv 在一個虛擬環境中安裝 tweepy。如果你沒有安裝 pipenv,可以看一看我們之前的文章如何在 Fedora 上安裝 Pipenv[3]。
- $ mkdir twitterbot
- $ cd twitterbot
- $ pipenv --three
- $ pipenv install tweepy
- $ pipenv shell
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
” 中找到。
向下滾動頁面,使用“創建我的訪問令牌
Create my access token
”按鈕生成一個“訪問令牌
Access Token
” 和一個“訪問令牌密鑰
Access Token Secret”。
使用 Tweppy —— 輸出你的時間線
現在你已經有了所需的憑證了,打開一個文件,並寫下如下的 Python 代碼。
- import tweepy
- 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()
- for tweet in public_tweets:
print(tweet.text)
在確保你正在使用你的 Pipenv 虛擬環境後,執行你的程序。
- $ python tweet.py
上述程序調用了 home_timeline 方法來獲取到你時間線中的 20 條最近的推特。現在這個機器人能夠使用 tweepy 來獲取到 Twitter 的數據,接下來嘗試修改代碼來發送 tweet。
使用 Tweepy —— 發送一條推特
要發送一條推特 ,有一個容易上手的 API 方法 update_status 。它的用法很簡單:
- 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。
- import tweepy
- def store_last_id(tweet_id):
- """ Stores a tweet id in text file """
- with open('lastid', 'w') as fp:
- fp.write(str(tweet_id))
- def get_last_id():
- """ Retrieve the list of tweets that were
- already retweeted """
- with open('lastid') as fp:
- return fp.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()
- except FileNotFoundError:
- print("No retweet yet")
- last_id = None
- for tweet in tweepy.Cursor(api.search, q="fedoramagazine.org", since_id=last_id).items():
- if tweet.user.name == 'Fedora Project':
- store_last_id(tweet.id)
- #tweet.retweet()
- print(f'"{tweet.text}" was retweeted')
為了只轉推 Fedora Magazine 的推特 ,機器人搜索內容包含 fedoramagazine.org 和由 「Fedora Project」 Twitter 賬戶發佈的推特。
結論
在這篇文章中你看到了如何使用 tweepy 的 Python 庫來創建一個自動閱讀、發送和搜索推特的 Twitter 應用。現在,你能使用你自己的創造力來創造一個你自己的 Twitter 機器人。
下邊有Python的基礎學習資料,可以免費領取。
很多人在問,學習Python讀什麼書,這其實是一個非常通用的問題,學習分為三種方式:看書、上課,而讀書學習是最實惠也是最高效的一種,小編整理了一些Python高分書籍給大家,從0基礎到高級適合不同學習階段,希望大家學習愉快。獲取方式:點擊小編頭像,關注後私信回覆“資料”即可下載。
閱讀更多 新啟創意 的文章