python Twython 練習

小人常立志要自學電腦程式,但鄙人程度不但沒什麼進展進步,而且過一陣子沒碰某個程式語言後,就很快地忘光它的基本語法和重要內建功能。自己又不太能專心一意地試作小型專案,故利用「仿作」方式,以查讀相關文件重溫程式規則語法以及函數功能,來進行習作練習。本篇原文出處:https://motherboard.vice.com/read/hack-this-automate-your-twitter-in-10-lines, 其透過python程式語言及其強大的函式庫模組,以在文字指令界面下操作玩簡單的twitter各種功能。

1. 在twitter deve上申請一個專用API
要先取得API的接口授權,才能夠抓取相關原始數據資料。

2. 假設電腦上已有python ,請再下載安裝 tweepy / Twython這兩個強化python功能的函式庫模組
有多種方式可安裝python 模組,例如利用pip(Python Package Index),即python的套件管理程式。
$pip install twython
$pip install tweepy
或是先把二者的原始碼clone下來後,利用python setup.py install指令安裝

Twython 這個套件本身為用來取得twitter資料數據,從其文件說明介紹,它可以用來搜尋(用戶資料、lists、時間軸等資訊),或是上傳更新用戶的照片圖片。
例如利用update_status這個功能,可以透過python 執行該程式碼來更新自己推特狀態
twitter.update_status(status=‘See how easy using Twython is!輸入更新的訊息!')
##括弧內單引號內的文字即是想要輸入的狀態更新訊息,目前測試亦支援中文輸入


當然別忘了,要進行這個小試驗之前,要在這支python程式碼上引入Twython函式庫,並且將Twython method所需的參數資料依照自己的twitter Dev API值設定填好。在Twython使用文件的進階版介紹中,還說明了若要插入影片或照片作更新twitter的方法:Advanced Usage 

3. Twython進階使用
經過前面簡單測試過了twython的入門使用小功能後,現在要進一步摸索Twython進階使用。
timeline = twitter.get_home_timeline(screenname='a5288',count=50) 
##screenname 是twitter帳號,用這支 get_home_timeline method會抓回一串很長json格式的資料。其內容之複雜,實在讓我不知道怎麼整理乾淨。(如果要看到timeline的內容,別忘了要利用print功能把資料內容印出到螢幕上)
##原文雖然可以在此處參數中的screenname='XXXX'輸入欲抓取任何一位用戶時間軸上的推文,但我試過似乎只能抓回自己時間軸上的推文,否則那就太可怕了。故此處若省略screenname=''這組參數,其效果仍然一樣。而count則是欲取抓取的時間軸上的推文數量。以我個人在某個時間透過這個方法,抓回一則自己推特時間軸上的推文,其回傳的資料內容如下:
在瀏覧器上所看到的這則推文資訊內容:

抓回內容為python dinctionary 資料類型,Twython 已將其轉換為Json格式

光一則推文的元數據/鍵值key/ tag 實在令我大開眼界,不過在此尚不必用到這麼雜亂的資料,故回到作業程式碼檔案,如果在再入底下二行,則會回傳打印出想要顯示在螢幕上的資訊,如推文內容以及發文者
for tweet in timeline:
print (tweet['text'] + "by " + tweet['user']['name'])

執行完此支程式後,即在CLI界面回傳我的推特時間軸上的前十個推文與發文用戶


下面這段程式主要目的是除了透過執行python程式抓取自己時間軸上的某一則答符合查詢條件query的推文外,並且把這則推文列成自己喜愛收藏的推文(LIKES)。
twitter Twython(APP_KEY,APP_SECRET,OAUTH_TOKEN,OAUTH_SECRET)
def fave(query,t,count=50):
    tweets = t.search(q=query,count=count)
for tweet in tweets['statuses']:
         result = t.create_favorite(id=tweet['id'])
         print("favorited " + result['text'])
query = 'Censorship Machine'
fave(query,twitter)
##寫一個名之為fave的函式(function),再加上利用Twython內建寫好的函式,如create_favorite,即可來操作新增符合查詢條件的推文成為自己喜愛的收藏。fave的第三個參數count符合查詢字的推文最多數量。原文中倒數第三行print("favorited " + result['text'].encode('utf-8')),我若加了encode('utf-8')反而無法正常顯示字碼,故將其刪除

4. TwythonStreamer 使用者文件
這裏我們進一步利用Twython函式庫當中的TwythonStreamer 功能,當然別忘了在程式一開始,就要把這支TwythonStreame呼叫進入,以便接下來直接使用它人寫上的功能應用。
class MyStreamer(TwythonStreamer):
      def on_success(self, data):
            if 'text' in data:
                 print (data['text'])
      def on_error(self, status_code, data):
             print (status_code)

stream = MyStreamer(APP_KEY, APP_SECRET,
OAUTH_TOKEN, OAUTH_SECRET)
stream.statuses.filter(track='HRC33')
從原始碼來看,這裏利用了TwythonStreame功能來建置一個叫作MyStreamer的類別class,這個類別中設定了二項功能,一個是on_success成功狀態下打印出資料內文訊息,一個是出錯on_error則打印出狀態碼。最後再新增變數stream,其即為MyStreamer類別,故其會繼承MyStreamer所具備的功能。這裏的track是指查詢關鍵字,這個程式碼執行時,它會自動抓取twitter時間流(似乎並不限於原帳戶時間流)中符合查詢關鍵字的推文。

0 意見:

Security First: umbrella app 中文化滙整

之前提過會作一篇 Security First's umbrella app 滙整與中文化超連結整合,以讓未下載使用、觀看過原手機應用的讀者(其實指的就是錯亂的我自己本人)稍能有全盤的概念來想像這個手機應用程式(或更精準的說:一個手機上的隨身電子書)的內容。好了,本文...

Videos

Contact Form

Name

Email *

Message *

Home Top Ad

Responsive Ads Here

Post Bottom Ad

Responsive Ads Here

Author Details

Templatesyard is a blogger resources site is a provider of high quality blogger template with premium looking layout and robust design. The main mission of templatesyard is to provide the best quality blogger templates which are professionally designed and perfectlly seo optimized to deliver best result for your blog.

Tags

Categories

Contact


Breaking

Recent News

Pages

Recent

Fashion

Connect With us

Comments

News

Food

Sports

test banner

Food

Technology

Featured