【问题标题】:Extracting raw Tweet data with Twitter API without shortened t.co link使用 Twitter API 提取原始推文数据而不缩短 t.co 链接
【发布时间】:2020-04-30 19:44:42
【问题描述】:

我正在学习将 Twitter API 与 Tweepy 一起使用。我需要提取原始推文数据的帮助——这意味着没有缩短的 URL。例如,This Tweet 显示一个 YouTube 链接,但在被 API 解析时,会打印一个 t.co 链接。如何打印显示的文本?感谢您的帮助。

注意:我和this question有类似的担忧,但不一样。

功能代码:

def get_tweets(username): 

        auth = tweepy.OAuthHandler(consumer_key, consumer_secret) 
        auth.set_access_token(access_key, access_secret) 

        # Call api 
        api = tweepy.API(auth) 

        tweets = api.user_timeline(screen_name=username) 

        # Empty Array 
        tmp=[] 


        # create array of tweet information: username,  
        # tweet id, date/time, text 
        tweets_for_csv = [tweet.text for tweet in tweets] # CSV file created  
        for j in tweets_for_csv: 
            # Append tweets to the empty array tmp 
            tmp.append(j)

        dict1 = {}
        punctuation = '''`~!@#$%^&*(){}[];:'".,\/?'''
        tmps = str(tmp)
        for char in tmps: 
            if char in punctuation: 
                tmps = tmps.replace(char," ")
        tmps2 = tmps.split(" ")

        a = 0
        while a < len(tmps2):
            for b in tmps2:
                dict1[a] = b
                a += 1

【问题讨论】:

    标签: python twitter tweepy


    【解决方案1】:

    Twitter 的 API 无需任何解析即可返回原始推文数据。此数据包括缩短的 URL,因为这就是 Tweet 的表示方式。 Twitter 本身只是解析并显示原始 URL。链接本身甚至仍然是缩短的链接。

    Tweet objects 有一个entities 属性,它为entities object 提供了一个urls 字段,该字段是URL objects 的数组,表示推文文本中包含的URL,或者如果是空数组,则没有链接。每个 URL 对象都包含一个 display_url 字段,其中原始 URL 粘贴/键入到推文中,以及一个 indices 字段,它是一个整数数组,表示 URL 开始和结束的推文文本中的偏移量。您可以使用这些字段来替换缩短的 URL。

    【讨论】:

    • 谢谢!我只是编写了另一个程序来解码shortURL,但你说的似乎更有效。
    猜你喜欢
    • 2017-04-10
    • 1970-01-01
    • 1970-01-01
    • 2018-11-18
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-07-04
    • 2017-06-06
    相关资源
    最近更新 更多