如何經過Python建立Twitter應用程序和API接口

  • 來源 | 願碼(ChainDesk.CN)內容編輯
  • 願碼Slogan | 鏈接每一個程序員的故事
  • 網站 | http://chaindesk.cn
  • 願碼願景 | 打造全學科IT系統免費課程,助力小白用戶、初級工程師0成本免費系統學習、低成本進階,幫助BAT一線資深工程師成長並利用自身優點創造睡後收入。
  • 官方公衆號 | 願碼 | 願碼服務號 | 區塊鏈部落
  • 免費加入願碼全思惟工程師社羣 | 任一公衆號回覆「願碼」兩個字獲取入羣二維碼

本文閱讀時長:9minpython

本文說明了如何運用Python API使用Twitter庫鏈接到Twitter賬戶。具體來講,此API容許用戶提取與特定Twitter賬戶相關的大量數據,以及經過 Python 管理 Twitter 的帖子(例如一次發佈多個推文)。 程序員

即便你是 Python 的初學者, 使用 Twitter Python 依賴包在分析方面也很是有用。例如,雖然Web開發人員可能更傾向於使用PHP等語言來鏈接API,但Python能夠更靈活地分析數據的趨勢和統計數據。所以,數據科學家和其餘分析師會發現Python更適合這個目的。編程

咱們將從Python鏈接到Twitter API的一些基本步驟開始,而後查看如何流式傳輸所需的數據。須要注意的是,雖然Twitter庫(以及其餘Python庫,如Tweepy和Twython)可使用數據執行大量不一樣的任務,但咱們將專一於本文中的一些更基本(和有用)的查詢,解決如下問題:api

  • 使用適當的憑據將Python鏈接到Twitter API
  • 下載與特定賬戶關聯的推文
  • 下載賬戶的全部關注和關注用戶的列表
  • 一次發佈多條推文
  • 在Twitter上自定義搜索特定術語的實例。

1.將Python鏈接到Twitter API


本教程使用iPython做爲Python接口鏈接到Twitter。爲了鏈接到API,咱們須要獲取Consumer KeyConsumer SecretAccess Token Secret網絡

要得到這些,您須要在apps.twitter.com上登陸您的賬戶。到那裏後,系統會提示您建立一個應用程序:app

建立應用程序後,您將在Keys and Access Tokens部分下找到相關的密鑰和令牌。機器學習

首先,咱們在終端中安裝python-twitter庫,以下所示:編程語言

pip install python twitter

完成後,咱們導入Twitter庫並輸入憑據,以下所示:函數

import twitter
api = twitter.Api(consumer_key='your_consumer_key',
  consumer_secret='your_consumer_secret',
    access_token_key='your_access_token_key',
    access_token_secret='your_access_token_secret')
print(api.VerifyCredentials())

輸入正確的憑證後,與API的鏈接即告完成,咱們如今能夠經過Python平臺控制咱們的Twitter賬戶!工具

2.下載用戶時間線


如今咱們已經將Python鏈接到Twitter API,咱們能夠繼續開始遠程使用不一樣的Twitter功能。例如,若是咱們但願下載推文的用戶時間線,咱們使用以下方法(並指定相應賬戶的屏幕名稱),而後使用該功能顯示結果:

statuses = api.GetUserTimeline(screen_name='Michael Grogan')
print([s.text for s in statuses])

一旦咱們輸入了上述內容,咱們就會在Python界面中看到相應的時間軸:

3.下載如下和如下聯繫人


Twitter庫還使咱們可以下載特定用戶正在關注的賬戶列表,以及做爲該特定用戶的關注者的賬戶。爲此,咱們使用前者,後者使用:

users = api.GetFriends()
print([u.name for u in users])

followers = api.GetFollowers()
print([f.name for f in followers])

請注意,咱們還能夠設置咱們但願獲取的用戶數的上限。例如,若是咱們但願爲任何特定賬戶獲取100個關注者,咱們能夠經過向total_count函數添加變量來實現,以下所示:

followers = api.GetFollowers(total_count=100)
print([f.name for f in followers])

4.發佈多個推文


使用Twitter API的一個巧妙之處是可以一次發佈多條推文。例如,咱們可使用該命令同時發佈如下兩條推文(一樣,使用該功能進行確認)。一旦咱們轉到相關的Twitter賬戶,咱們就會看到這兩條推文都已發佈:

status = api.PostUpdate('How to calculate the Variance Inflation Factor in R: http://www.michaeljgrogan.com/ordinary-least-squares-an-analysis-of-stock-returns/ #rstats #datascience #programming')
print(status.text)
status = api.PostUpdate('#BigData Scientists Earn 10X to 15X More Money Compared to Engineers, CAs http://bit.ly/1NoAgto  #datascience')
print(status.text)

5.搜索推文

Twitter庫中包含的getsearch()函數是一個特別強大的工具。此功能容許咱們在Twitter上搜索特定術語。請注意,這適用於已輸入特定術語的全部用戶,而不只僅是咱們在Python中提供憑據的賬戶。

例如,讓咱們在Python中搜索術語「bigdata」。咱們設置的參數是自2016年11月21日起包含該術語的推文,咱們選擇限制流式傳輸的推文數量爲10:

api.GetSearch(term='bigdata', since=2016-11-21, count=10)

請注意,咱們能夠經過各類方式自定義GetSearch()函數,具體取決於咱們但願如何提取數據。例如,若是沒有指定日期,這將花費更長的時間來流式傳輸,咱們也能夠選擇在2016年11月21日以前收集包含術語「bigdata」的推文,以下所示:

api.GetSearch(term='bigdata', until=2016-11-21, count=10)

值得注意的是,此函數在咱們在until變量下指定的日期以前下載最多7天的數據。

此外,咱們不只限於僅經過術語搜索GetSearch。例如,假設咱們但願經過地理位置搜索推文 - 特別是自11月18日以來在紐約時代廣場1英里範圍內發送的推文(請注意,距離可使用mi或km分別以英里或千米格式化):

api.GetSearch(geocode="40.758896,-73.985130,1mi", since=2016-11-18)

運行該函數後,咱們看到Python返回如下推文(固然,還有什麼更好的地方能夠找到Donald Trump!):GetSearch()

如何使用這些數據?


如前所述,Python對流式社交網絡數據極具吸引力的一個特殊緣由是可以對咱們收集的信息進行深刻的數據分析。

例如,咱們已經看到了如何使用位置搜索推文GetSearch。隨着機器學習在分析社交媒體趨勢的數據科學家中風靡一時,在這一領域變得很是流行的一種特殊技術是網絡分析。這種技術實際上能夠顯示分散的數據(或節點)以造成緊密的網絡,一般某些節點被證實是一個焦點。例如,假設咱們要分析全球十個不一樣地點的1000條最受歡迎的推文。

在隨機的某一天,儘管咱們看到網絡中不一樣推文之間存在一些相關性,但咱們可能仍會發現倫敦推文上的主題標籤與紐約推文的主題標籤差異很大。然而,在美國大選之夜或英國退歐這樣的重大世界事件中,當Twitter對這一特定主題發展趨勢時,發現網絡每每更加緊密,所以,在這種狀況下,情感分析的機會更多。一個場景,例如,很明顯誰將贏得總統職位,或英國投票退出歐盟。人們一般會看到網絡以不一樣的方式彙集,這取決於趨勢推文,由於能夠得到更多的實時信息。

這只是Python的優點之一。雖然使用API鏈接到Twitter(能夠在許多編程語言中完成)是一回事,可是可以使用分析以有意義的方式對數據進行排序是另外一回事。能夠經過Python使用機器學習技術來分析來自社交網絡的流數據並從該數據進行有意義的預測。

結論


模塊文檔提供了可用於Python下載,過濾和操做數據的不一樣功能的很是詳細的描述。最後,雖然咱們還研究了使用API直接發佈到Twitter的方法,但上述技術在分析趨勢時尤爲有用,例如標籤流行度,按位置搜索術語的頻率等等。在這方面,經過Python與Twitter交互對於那些但願對收集的信息實施數據分析技術的人特別有用。

固然,與Twitter的API交互可使用多種語言完成,具體取決於您的最終目標。若是目標是Web開發或設計,那麼PHP或Ruby多是您最好的選擇。可是,若是您的目標是使用從Twitter得到的數據進行有意義的分析,那麼Python就是不二之選。

相關文章
相關標籤/搜索