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 列表