在Tweepy中检查友谊

时间:2016-03-20 19:31:42

标签: python tweepy

我想找到,我是否跟随某人。我意识到虽然它是用官方的Tweepy文档编写的,但我不能再使用cscope -b -f work/cscope.out `find src/bar -name *.[chly]` 了。因此,我尝试使用API.exists_friendship,因为文档说它返回友情对象。 API.show_friendship(source_id/source_screen_name, target_id/target_screen_name)

当我写(<tweepy.models.Friendship object at 0x105cd0890>, <tweepy.models.Friendship object at 0x105cd0ed0>)时,它会返回someone_id的my_username和用户名。

任何人都可以告诉我如何正确使用它?还是有任何其他方法只是简单地返回我的真/假,因为我只是想知道我是否跟随他/她。

4 个答案:

答案 0 :(得分:1)

其实我不喜欢这个答案但是现在我用过了;

me = api.me()
user = api.get_user(username)

for f in user.friends():
    if me.name in f.name:
        print "FOLLOWING"
    else:
        print "NOT FOLLOWING"

我认为应该(并且有)一个最佳解决方案(这就是我问的原因)并且可能当我的跟随数量增加时,它的过程会更长。如果您知道更好/最佳的解决方案,请告诉我。

答案 1 :(得分:1)

方法show_friendship会返回一个元组,当您尝试查看特定用户是否关注您时,有一点难以理解,并且还有另一种方法可以立即查看所有未关注您的关注者。但是,如果您仍想检查单个连接,我会在您尝试以下操作时发现:

status = api.show_friendship(A,B)
print(status[0].following, status[1].following)

如果输出为True False,则意味着他/她没有关注您。其他情况是:

  1. False True =你被他/她跟踪。
  2. False False =你们之间没有联系。
  3. 但是,正如我上面所说,您可以使用一段代码检查所有未关注您的人。如在其他类似问题中发布的那样,您可以在https://stackoverflow.com/a/45776597/4091473

    找到代码

    希望它有所帮助!

答案 2 :(得分:0)

我正在使用以下代码,效果很好..      if(api.show_friendship(source_screen_name='venky6amesh', target_screen_name='vag')): print("the user is not a friend of ") try: api.create_friendship(j) print('success') except tweepy.TweepError as e: print('error') print(e.message[0]['code']) else: print("user is a friend of ",j)

答案 3 :(得分:0)

def unfollow_non_followers():
    friends = api.friends_ids()
    me = api.me()

    followers = api.followers_ids(me)

    non_followers = [x for x in friends if x not in followers]

    # unfollow all non-follow backs
    for id in non_followers:

        api.destroy_friendship(id)

        # Display unfollowed user, pause for API limitations (valid or not?)
        user = api.get_user(id)
        print(f'No longer following {user.name}')
        time.sleep(3)