2017-04-08 48 views
0

例如鳴叫文本,以我目前的代碼,this tweet顯示爲:追加鳴叫的媒體,展開的鏈接,報價使用Tweepy

通過牛津道

令人驚歎的乘坐今天早上拿到腿準備好快速測試... https://開頭t.co/W0uFKU9jCr

我希望能像上Twitter的網站上顯示它,例如:

通過牛津道令人驚歎的車程今天早上準備進行快速測試... https://www.instagram.com/p/BSocl5Djf5v/

我該怎麼做到這一點?我的意思的媒體,擴大網址,鳴叫報價的URL替換Twitter的短網址...我知道它已經與JSON的'entities' object做的,但我不知道如何處理,在我的代碼

for status in new_tweets: 
    if ('RT @' not in status.full_text): 
     id = status.id 
     text = status.full_text 

回答

3

你是對的,你需要使用實體。你可以得到expanded_url像這樣:

for status in tweepy.Cursor(twitter_api.user_timeline, screenname=username).items(limit): 
    if status.entities['urls']: 
     for url in status.entities['urls']: 
      links = url['expanded_url'] 
print(links) 

可以使這個打印出來的狀態文字,通過連接它們

for status in tweepy.Cursor(twitter_api.user_timeline, screenname=username).items(limit): 
    if status.entities['urls']: 
     for url in status.entities['urls']: 
      links = url['expanded_url'] 
      print(status.text + links) 

的expanded_url這並不是說當鳴叫有網址,這個代碼將只打印,所以我相信如果沒有媒體鏈接共享,它不會打印推文。

+0

謝謝。儘管我注意到一些...我發現在得到一些錯誤之後,檢查推文是否包含網址(或媒體)的正確方法是在status.entities中'if'urls':'而不是'if status.entities [''網址]:' – iMe