Форум сайта python.su
0
К примеру возьмем код для отправки постов на стену:
import vk_api import time vk = vk_api.VkApi(login = '*********', password = '******') #Авторизуемся на сайте. vk.auth() auth_test=vk.method('users.get',{'users_ids':'0'}) #Выводим список информации об авторизованном пользователе, a=auth_test[0] a_id=a['id'] a_last_name=a['last_name'] a_first_name=a['first_name'] print(a_first_name, a_last_name,'id:',a_id) for x in range(20): vk.method('wall.post', {'owner_id': '499187139', 'message':x,'attachments': 'photo138362473_456239574%2Fphotos138362473'})
Traceback (most recent call last): File "C:\Program Files\Python37-32\A.py", line 16, in <module> vk.method('wall.post', {'owner_id': '499187139', 'message':x,'attachments': 'photo138362473_456239574%2Fphotos138362473'}) File "C:\Program Files\Python37-32\lib\site-packages\vk_api\vk_api.py", line 610, in method response = self.error_handlers[error.code](error) File "C:\Program Files\Python37-32\lib\site-packages\vk_api\vk_api.py", line 492, in captcha_handler raise captcha vk_api.exceptions.Captcha: Captcha needed
Офлайн
294
almax вы удивитесь но https://vk.com/dev/captcha_error
Если какое-либо действие (например, отправка сообщения) выполняется пользователем слишком часто, то запрос к API может возвращать ошибку “Captcha needed”. При этом пользователю понадобится ввести код с изображения и отправить запрос повторно с передачей введенного кода Captcha в параметрах запроса.пример обработки капчи
….
Если возникает данная ошибка, то в сообщении об ошибке передаются также следующие параметры:
captcha_sid - идентификатор captcha
captcha_img - ссылка на изображение, которое нужно показать пользователю, чтобы он ввел текст с этого изображения.
almaxТакже как и все остальные исключения
Подскажите, как обработать это исключение?
try: бла-бла-бла except vk_api.exceptions.Captcha: бла-бла-бла че там на капче? может лучше поставить задержку между отправкой сообщений?
[code python][/code]
Отредактировано PEHDOM (Дек. 6, 2018 09:59:45)
Офлайн
0
Да как не допустить исключение, это отдельный вопрос, все же интересно, как получить ссылку на капчу. В тексте исключения нет.
PEHDOMДа как не допустить исключение, это отдельный вопрос, все же интересно, как получить ссылку на капчу. В тексте сообщения об исключении вроде нет.
Да как не допустить исключение, это отдельный вопрос, все же интересно, как получить ссылку на капчу. В тексте исключения нет.
Офлайн
294
almax1. попробуйте как на примере с гитхаба, там вроде все прозрачно, хотя я так и не понял, там каллбек функция для обработки капчи передаеться только для капчи при логине или вообще для всей сессии..
все же интересно, как получить ссылку на капчу. В тексте исключения нет.
........ if error.code in self.error_handlers: if error.code == CAPTCHA_ERROR_CODE: error = Captcha( self, error.error['captcha_sid'], self.method, (method,), {'values': values, 'raw': raw}, error.error['captcha_img'] ) response = self.error_handlers[error.code](error) if response is not None: return response
[code python][/code]
Отредактировано PEHDOM (Дек. 6, 2018 14:46:29)
Офлайн
0
PEHDOMСкажите, что это за код и как его приспособить к моему коду?
Офлайн
294
almaxникак, это кусок кода из vk_api по которому видно что в случае CAPTCHA_ERROR_CODE к результату работы функции добавляеться капча и ее сид и все это возвращаеться. Поэтому посмотрите конкретно что она вам возвращает. Тоесть не в тупую вызывать vk.method(бла-бла-бла) и сливать результат вызова в NULL, а записывать редультат в переменную, и из нее вытягивать все что вам нужно.
Скажите, что это за код и как его приспособить к моему коду?
[code python][/code]
Офлайн