TwitterAPI-获取喜欢某个状态的用户列表

TwitterAPI-获取喜欢某个状态的用户列表,twitter,Twitter,我想通过twitterapi获得一个支持特定状态的用户列表。 我可以看到每个状态都有它得到的收藏夹数量,但我需要制作收藏夹的用户列表 有什么办法可以做到这一点吗 这里是一个用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/act

我想通过twitterapi获得一个支持特定状态的用户列表。 我可以看到每个状态都有它得到的收藏夹数量,但我需要制作收藏夹的用户列表


有什么办法可以做到这一点吗

这里是一个用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

对于使用Python3的用户,需要解码HTML字符串以避免出现类型错误

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

API中未公开此信息。是否有任何解决方法来获取此数据?我见过有人谈论使用流来实现这一点,但情况并不完全相同……不。阅读API文档-它没有为您提供该功能。抱歉,Android的官方Twitter应用程序可以显示喜欢帖子并转发的用户列表。因此,它是通过私有api调用以某种方式暴露出来的。它的完全复制成功了!你也知道这是什么利率限制?15/分钟还是180/分钟?该解决方案不使用官方Twitter API,因此不应该有速率限制。但是Twitter可能会有另一种爬虫检测方法,所以就试试吧。太好了,需要对python3用户的代码进行一些更改。”urllib2'将是'urllib.request',需要从字节解码,所以在匹配之前使用'decode(“utf8”)。值得注意的是,此方法在当前twitter HTML布局中最多只能返回25个结果。它可以工作,但限制仍然是25个结果。