Как я могу проверить, активен ли Твиттер с Tweepy - PullRequest
0 голосов
/ 21 июня 2020

Я новичок в этой штуке с Twitter API, поэтому мне нужна ваша помощь. Я работаю над проектом, в котором мне нужно извлечь информацию (например, количество подписчиков / друзей) о длинном списке пользователей Twitter ( пожалуйста, посмотрите некоторые части проекта здесь ). Я продолжаю сталкиваться с двумя проблемами:

  1. если пользователь больше не активен в твиттере (приостановленные / удаленные учетные записи), он возвращает ошибки, которые усекают процесс поиска пользовательских функций, для которых мне придется удалить пользователя из списка и начать все сначала.
  2. Когда нет усечения (т. е. парсер не столкнулся с неактивными учетными записями), твиттер API не позволит получить более нескольких сотен запросов за раз, поэтому я буду необходимо вручную обновить следующую партию.

Где нужна помощь :

  1. Как я могу использовать api.look_user () (или другие полезные функции ), чтобы получить список / диктовку только активных учетных записей из моего длинного списка? Затем я могу ввести этот список активных пользователей только [имя пользователя] в свой код (как показано ниже).
  2. Как я могу обойти ограничение скорости, установленное Twitter, ИЛИ автоматически продлевать запрос после каждого тайм-аута, пожалуйста?
auth = tweepy.OAuthHandler(api_key, api_secret_key)
auth.set_access_token(access_token, access_token_secret)
api = tweepy.API(auth, wait_on_rate_limit=True,wait_on_rate_limit_notify=True)

#create dictionary
user_dict = {}
userName = (list of usernames to be parsed to retrieve their followers/friends count)

try:

    with open('follower_friend_count.csv', mode='w') as yourFile:
        #header
        cols = ["username", "followers_count","friend_count"]
        writer = csv.DictWriter(yourFile, fieldnames=cols)
        #prints header
        writer.writeheader()
        
        #Initiate count to monitor returned username counts
        count = 0

        # Write dictionary into csv file
        for i in userName:
            #find follower count and friend count from userName
            follower_count = api.get_user(i).followers_count
            friend_count = api.get_user(i).friends_count

            #print(i, follower_count, friend_count)
            #Assign values to dictionary
            user_dict[i] = follower_count, friend_count

            writer.writerow({cols[0]:i, cols[1]:follower_count, cols[2]:friend_count})
            count = count + 1
            print(count)
        #print("dictionary: ", user_dict)


except IOError:
    print("I/O error")


#Notify me when operation is completed
print("File write completed\n")
...