Как исправить ошибки Tweepy / Python '404' и '34' - PullRequest
0 голосов
/ 26 апреля 2019

Получение ошибки ниже для скрипта, который раньше работал нормально. Все остальные скрипты подключаются и работают нормально.

Ошибка:

Traceback (последний вызов был последним): File "C: ... \ Python \ Python36 \ lib \ site-packages \ twitter \ api.py", строка 341, в _handle_response handle = urllib_request.urlopen (req, ** kwargs)

Файл "C: ... \ Python \ Python36 \ lib \ urllib \ request.py", строка 223, в urlopen return opener.open (url, data, timeout)

Файл "C: ... \ Python \ Python36 \ lib \ urllib \ request.py", строка 532, в открытом виде ответ = мет (req, ответ) файл "C: ... \ Python \ Python36 \ lib \ urllib \ request.py", строка 642, в http_response 'http', запрос, ответ, код, msg, hdrs) Файл "C: ... \ Python \ Python36 \ lib \ urllib \ request.py", строка 570, по ошибке вернуть self._call_chain (* args)

Файл "C: ... \ Python \ Python36 \ lib \ urllib \ request.py", строка 504, в _call_chain result = func (* args)

Файл "C: ... \ Python \ Python36 \ lib \ urllib \ request.py", строка 650, в http_error_default повысить HTTPError (req.full_url, код, msg, hdrs, fp) urllib.error.HTTPError: Ошибка HTTP 404: не найдено

Во время обработки вышеуказанного исключения произошло другое исключение:

Traceback (последний вызов был последним):

Файл "C: \ TwitterFollow \ TwitterFollow.py", строка 15, в my_bot.auto_follow_followers_of_user ("Имя пользователя", count = 200)

Файл "C: \ TwitterFollow \ TwitterFollow__init __. Py", строка 334, в auto_follow_followers_of_user follow_of_user = комплект (self.TWITTER_CONNECTION.followers.ids (screen_name = user_screen_name [ "иды"] [: число])

Файл "C: ... \ Python \ Python36 \ lib \ site-packages \ twitter \ api.py", строка 334, в __call__return self._handle_response (req, uri, arg_data, _timeout)

Файл "C: ... \ Python \ Python36 \ lib \ site-packages \ twitter \ api.py", строка 367, в _handle_response поднять TwitterHTTPError (e, uri, self.format, arg_data) twitter.api.TwitterHTTPError: Twitter отправил статус 404 для URL: 1.1 / последователи / ids.json, используя параметры (Oauth_consumer_key = ххх ... ххх & oauth_nonce = ххх ... ххх & oauth_signature_method = ххх ... ххх & oauth_timestamp = ххх ... ххх & oauth_token = ххх ... ххх & oauth_version = 1,0 & screen_name = UserName% E2% 80% 8F & oauth_signature = ххх ... ххх) детали: {'errors': [{'code': 34, 'message': 'Извините, эта страница делает не существует. '}]}

Код:

#Follows the followers of a specified user.
def auto_follow_followers_of_user(self, user_screen_name, count=200):
    following = self.get_follows_list()
    followers_of_user = set(self.TWITTER_CONNECTION.followers.ids(screen_name=user_screen_name)["ids"][:count])
    do_not_follow = self.get_do_not_follow_list()

    for user_id in followers_of_user:
        try:
            if (user_id not in following and
                user_id not in do_not_follow):
                self.TWITTER_CONNECTION.friendships.create(user_id=user_id, follow=False)
                print("following %s" % user_id)
                # add delay
                time.sleep(randint(10,100))

        except TwitterHTTPError as e:
            # quit on rate limit errors.                                                                                                                  
            if "unable to follow more people at this time" in str(e).lower():
                print("You are unable to follow more people at this time. "
                      "Wait a while before running the bot again or gain more followers.")
                return

            # do not print "already requested to follow" errors.
            if "already requested to follow" not in str(e).lower():
...