본문 바로가기
IT/파이썬 덕질

[파이썬 덕질] 트위터 맞팔 안한 사람을 언맞팔해보자!

by 친절한껍데기 2018. 9. 16.


파이썬으로 덕질하기! 네번째시간!


지난 시간에 맞팔하기 기능을 알려드렸습니다.


이번에는 저를 맞팔하지 않은 사람을 언맞팔 해보도록 하겠습니다.


트위터 계정을 만들고 처음에 저와 관심분야가 비슷한 사람들을 무작위로 팔로우하고


맞팔이 들어 온 사람을 제외하고 다 언맞팔을 해서 안정적으로 트위터 활동을 할 수 있습니다.




제 트위터입니다.

6월쯤에 만들었으나 사용하지 않다가 이번에 사용하기 시작했습니다.

초반 팔로워 수를 늘려보고자 약 400명을 팔로잉 했으나 40명만 맞팔이 들어왔네요.

좀 더 기다리면 맞팔이 늘어날 수도 있겠지만, 이번시간을 위해 언 맞팔을 해보겠습니다.


1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
import time
import tweepy
import sys
 
consumer_key = 'a'
consumer_secret = 'b'
access_token = 'c'
access_token_secret = 'd'
 
auth = tweepy.OAuthHandler(consumer_key, consumer_secret)
auth.set_access_token(access_token, access_token_secret)
api = tweepy.API(auth)
 
print "Loading followers.."
followers = []
for follower in tweepy.Cursor(api.followers).items():
    followers.append(follower)
 
print "Found %s followers, finding friends.." % len(followers)
friends = []
for friend in tweepy.Cursor(api.friends, wait_on_rate_limit=True).items():
    friends.append(friend)
 
# creating dictionaries based on id's is handy too
 
friend_dict = {}
for friend in friends:
    friend_dict[friend.id] = friend
 
follower_dict = {}
for follower in followers:
    follower_dict[follower.id] = follower
 
# now we find all your "non_friends" - people who don't follow you
# even though you follow them.
 
non_friends = [friend for friend in friends if friend.id not in follower_dict]
 
# double check, since this could be a rather traumatic operation.
 
print "Unfollowing %s non-following users.." % len(non_friends)
print "This will take approximately %s minutes." % (len(non_friends)/60.0)
answer = raw_input("Are you sure? [Y/n]").lower()
if answer and answer[0!= "y":
    sys.exit(1)
 
for nf in non_friends:
    print "Unfollowing " + str(nf.id).rjust(10)
    try:
        nf.unfollow()
    except:
        print "  .. failed, sleeping for 5 seconds and then trying again."
        time.sleep(5)
        nf.unfollow()
    print " .. completed, sleeping for 1 second."
    time.sleep(1)
cs


이 소스는 제가 한줄도 짜지 않았어요...

인터넷에서 그대로 가져온 겁니다.

모든 소스는 인터넷에 있으니 가져다 쓰기만 하면 된다는 말이 있을 정도로,

인터넷에 유사한게 많이 있으니 찾아서 쓰면 됩니다 ㅎㅎ


소스설명

followers = []
for follower in tweepy.Cursor(api.followers).items():
    followers.append(follower)

 나를 팔로잉 한 사람들을 찾습니다.


friends = []
for friend in tweepy.Cursor(api.friends, wait_on_rate_limit=True).items():
    friends.append(friend)

내가 팔로잉 한 사람들을 찾습니다.


non_friends = [friend for friend in friends if friend.id not in follower_dict]
 

서로 빼주면 저를 팔로잉 안한사람들이 나오겠죠??

그 다음부터는 안한사람을 빼주는 구문입니다. ㅎ


결과는?

깔끔하게 정리되었습니다..

이제 트위터 활동을 하면 되겠네요..

공식 트위터들도 다 언팔되어서 다시 팔로우해야하는 수고로움이 있었습니다...만 좋은 기능입니다.