Twitter API - 获取收藏状态的用户列表

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Twitter API - 获取收藏状态的用户列表相关的知识,希望对你有一定的参考价值。

我想获得一个通过Twitter API收藏特定状态的用户列表。我可以看到每个状态都有它所获得的收藏数量,但我需要获得最喜欢的用户列表。

任何想法如何实现这一目标?

答案

这是在Python 2.7.x中实现的变通方法或黑客攻击:

import urllib2
import re

def get_user_ids_of_post_likes(post_id):
    try:
        json_data = urllib2.urlopen('https://twitter.com/i/activity/favorited_popup?id=' + str(post_id)).read()
        found_ids = re.findall(r'data-user-id=\"+d+', json_data)
        unique_ids = list(set([re.findall(r'd+', match)[0] for match in found_ids]))
        return unique_ids
    except urllib2.HTTPError:
        return False

# Example: 
# https://twitter.com/golan/status/731770343052972032

print get_user_ids_of_post_likes(731770343052972032)

# ['13520332', '416273351', '284966399']
#
# 13520332 +> @TopLeftBrick
# 416273351 => @Berenger_r
# 284966399 => @FFrink
另一答案

对于使用Python 3的用户,您需要解码html字符串以避免出现TypeError。

import urllib
import re

def get_user_ids_of_post_likes(post_id):
    try:
        json_data = urllib.request.urlopen('https://twitter.com/i/activity/favorited_popup?id=' + str(post_id)).read()
        json_data = json_data.decode('utf-8')
        found_ids = re.findall(r'data-user-id=\"+d+', json_data)
        unique_ids = list(set([re.findall(r'd+', match)[0] for match in found_ids]))
        return unique_ids

    except urllib.request.HTTPError:
        return False

# Example: 
# https://twitter.com/golan/status/731770343052972032

print get_user_ids_of_post_likes(731770343052972032)

# ['13520332', '416273351', '284966399']
#
# 13520332 +> @TopLeftBrick
# 416273351 => @Berenger_r
# 284966399 => @FFrink

以上是关于Twitter API - 获取收藏状态的用户列表的主要内容,如果未能解决你的问题,请参考以下文章

如何获取特定 Twitter 状态的图像 url - Twitter API

使用 Tweepy 从用户 Twitter 关注者那里获取用户 ID 列表

使用 tweepy 获取用户整个 Twitter 时间线

Twitter 是不是提供任何 api 来回复推文或获取回复列表

如何将cas restful api 获取到用户信息后

用户名包含Twitter API使用Java中的特定单词