Как получить друзей и подписчиков человека в Твиттере, используя библиотеку tweepy? - PullRequest
0 голосов
/ 10 апреля 2020

Функция getting_friends_follwers() ниже работает, если я удаляю значение 100 из (cursor2.items (100)). Моя цель - получить эти имена (подписчики и друзья) и сохранить их в файле «amigos.txt».

Проблема: имя screen_name имеет гигантское количество c количество друзей и подписчиков и Таким образом, соединение закрыто Twitter. Я думал о попытке захватить имена 100 из 100 (отсюда и значение 100 в вызове cursor2), но возникает следующая ошибка:

builtins.TypeError: '<' not supported between instances of 'User' and 'User'

Как это исправить?

Meu = []
def getting_friends_follwers():
    # Get list of followers and following for group of users tweepy
    f = open("amigos.txt","w")
    cursor = tweepy.Cursor(api.friends, screen_name="Carlos")
    cursor2 = tweepy.Cursor(api.followers, screen_name="Carlos")
##    for user in cursor.items():
##        print('friend: ' + user.screen_name)

    for user in sorted(cursor2.items(100)):###funciona se eu tirar este valor!!!
         f.write(str(user.screen_name)+ "\n")


         print('follower: ' + user.screen_name)

f.close()
getting_friends_follwers()

1 Ответ

1 голос
/ 10 апреля 2020

Вы получаете эту ошибку, потому что вы передаете элементы в «отсортированную» функцию, которая пытается отсортировать эти «пользовательские» объекты, но не может этого сделать, так как нет инструкций о том, как «сортировать» твипы пользовательские объекты.

Если вы удалите «отсортировано», программа будет работать нормально.

Кроме того, вы закрываете файл перед вызовом функции. Я бы посоветовал вам использовать синтаксис «с открытым», чтобы обеспечить правильное закрытие файла.

Вы можете написать свой код так:

def getting_friends_follwers(file):
    # Get list of followers and following for group of users tweepy
    cursor = tweepy.Cursor(api.friends, screen_name="Carlos")
    cursor2 = tweepy.Cursor(api.followers, screen_name="Carlos")
##    for user in cursor.items():
##        print('friend: ' + user.screen_name)

    for user in cursor2.items(100):###funciona se eu tirar este valor!!!
         file.write(str(user.screen_name)+ "\n")
         print('follower: ' + user.screen_name)

with open("amigos.txt", "w") as file:
    getting_friends_follwers(file)

...