Python. Разобраться в ошибке метода audio.get библиотеки vk_api
1 000 руб. за проект
С перебоями работает метод выгрузки аудиозаписей для пользователя вконтакте. Причем для тех, чьи аудиозаписи доступны для публичного просмотра. Привел два положительных и два отрицаельных примера. Задача: предоставить решение, которое выгружает аудио для этих проблемных случаев (возможно, найти и пофиксить проблему vk_api.audio, может, найти другую рабочую версию). Использую последнюю версию vk_api - 11.8.0 .
Вот код:
import vk_api
from vk_api import audio
login=''
password =''
vk_session = vk_api.VkApi(login=login, password=password)
vk_session.auth()
vk = vk_session.get_api()
vk_audio = audio.VkAudio(vk_session)
# 20681945 - выгружает
# 16192 - выгружает
# 38647102 - нет
# 13559899 - нет
vk_audio.get(owner_id=13559899)
Ошибка:
TypeError Traceback (most recent call last)
<ipython-input-28-992f6dd1a603> in <module>()
15 # 13559899 - нет
16
---> 17 vk_audio.get(owner_id=13559899)
C:\Anaconda3\lib\site-packages\vk_api\audio.py in get(self, owner_id, album_id, access_hash)
139 """
140
--> 141 return list(self.get_iter(owner_id, album_id, access_hash))
142
143 def get_albums_iter(self, owner_id=None):
C:\Anaconda3\lib\site-packages\vk_api\audio.py in get_iter(self, owner_id, album_id, access_hash)
120 response.text,
121 self.user_id,
--> 122 filter_root_el={'class_': 'audioPlaylist__list'} if album_id else None
123 )
124
C:\Anaconda3\lib\site-packages\vk_api\audio.py in scrap_data(html, user_id, filter_root_el, convert_m3u8_links)
315 artist = audio.select_one('.ai_artist').text
316 title = audio.select_one('.ai_title').text
--> 317 duration = int(audio.select_one('.ai_dur')['data-dur'])
318 full_id = tuple(
319 int(i) for i in audio['data-id'].split('_')
TypeError: 'NoneType' object is not subscriptable
Вот код:
import vk_api
from vk_api import audio
login=''
password =''
vk_session = vk_api.VkApi(login=login, password=password)
vk_session.auth()
vk = vk_session.get_api()
vk_audio = audio.VkAudio(vk_session)
# 20681945 - выгружает
# 16192 - выгружает
# 38647102 - нет
# 13559899 - нет
vk_audio.get(owner_id=13559899)
Ошибка:
TypeError Traceback (most recent call last)
<ipython-input-28-992f6dd1a603> in <module>()
15 # 13559899 - нет
16
---> 17 vk_audio.get(owner_id=13559899)
C:\Anaconda3\lib\site-packages\vk_api\audio.py in get(self, owner_id, album_id, access_hash)
139 """
140
--> 141 return list(self.get_iter(owner_id, album_id, access_hash))
142
143 def get_albums_iter(self, owner_id=None):
C:\Anaconda3\lib\site-packages\vk_api\audio.py in get_iter(self, owner_id, album_id, access_hash)
120 response.text,
121 self.user_id,
--> 122 filter_root_el={'class_': 'audioPlaylist__list'} if album_id else None
123 )
124
C:\Anaconda3\lib\site-packages\vk_api\audio.py in scrap_data(html, user_id, filter_root_el, convert_m3u8_links)
315 artist = audio.select_one('.ai_artist').text
316 title = audio.select_one('.ai_title').text
--> 317 duration = int(audio.select_one('.ai_dur')['data-dur'])
318 full_id = tuple(
319 int(i) for i in audio['data-id'].split('_')
TypeError: 'NoneType' object is not subscriptable
Отзывы
В заказе есть исполнитель
При переводе заказа из архивного в актуальный, текущий исполнитель будет снят с задачи.
Выберите тип сделки
С безопасной сделкой вы всегда сможете вернуть средства, если что-то пойдет не так. С простой сделкой вы самостоятельно договариваетесь с исполнителем об оплате и берете на себя решение конфликтов.