يوم جيد للجميع.
أردت تنزيل جميع الموسيقى الخاصة بي من VKontakte إلى محرك أقراص فلاش USB ، كما في الأيام الخوالي. غوغل قليلاً وعدم العثور على أي شيء تقريبًا أكثر أو أقل قبولًا ، قررت التصرف بمفردي. بعد نصف ساعة ، حصلنا على سيناريو عمل لأنفسنا. لذلك دعونا نبدأ.
للعمل ، تحتاج إلى تنزيل vk_api وطلب الوحدات النمطية!
للبدء ، قم بتوصيل الوحدات اللازمة وتعلن بعض المتغيرات:
import os import pickle import vk_api import requests from vk_api import audio from time import time vk_file = "vk_config.v2.json" REQUEST_STATUS_CODE = 200 path = 'vk_music/'
سنقوم الآن بكتابة طريقة التفويض لحساب VKontakte الخاص بك:
def Auth(new=False): try: USERDATA_FILE = r"AppData/UserData.datab"
الطريقة سوف تحقق مما إذا كنا قد سجلنا الدخول بالفعل من قبل؟ إذا حدث هذا ، فيمكنك المتابعة في هذا الحساب ، أو تسجيل الدخول مرة أخرى. في هذه الحالة ، سيتم مسح البيانات القديمة.
بعد ذلك ، نكتب طريقة auth_handler ، اللازمة للترخيص في الحسابات التي يتم فيها تمكين المصادقة الثنائية:
def auth_handler(): code = input(" \n> ") remember_device = True
وهكذا ، الآن يمكننا تسجيل الدخول إلى فكونتاكتي. في طريقة المصادقة ، تم ذكر الطريقة SaveUserData () ، وهي ضرورية لحفظ البيانات. لنكتبها:
def SaveUserData(login, password, profile_id): USERDATA_FILE = r"AppData/UserData.datab" if (not os.path.exists("AppData")):
سيتم تسجيل البيانات في شكل ثنائي ، حتى لا يتم تخزين تسجيل دخول المستخدم وكلمة المرور بشكل واضح.
يبقى لكتابة طريقة لتنزيل الصوت من فكونتاكتي ، فلنفعل هذا:
def main(): try: if (not os.path.exists("AppData")): os.mkdir("AppData") if not os.path.exists(path): os.makedirs(path)
حسنا ، هذا كل شيء. الآن لدينا برنامج نصي لتنزيل التسجيلات الصوتية من فكونتاكتي.
هذا ما يشبه الكود المصدري بالكامل:
إظهار شفرة المصدر import os import pickle import vk_api import requests from vk_api import audio from time import time __version__ = 'VK Music Downloader v1.0' APP_MESSAGE = ''' _ . ___ /\\ | | | \\ | | | \\ / | / /__\\ | | | \\ | | | \\ / |/ / \\ |___| |__/ | |___| \\/ |\\ ''' vk_file = "vk_config.v2.json" REQUEST_STATUS_CODE = 200 path = 'vk_music/' def auth_handler(remember_device=None): code = input(" \n> ") if (remember_device == None): remember_device = True return code, remember_device def SaveUserData(login, password, profile_id): USERDATA_FILE = r"AppData/UserData.datab" SaveData = [login, password, profile_id] with open(USERDATA_FILE, 'wb') as dataFile: pickle.dump(SaveData, dataFile) def Auth(new=False): try: USERDATA_FILE = r"AppData/UserData.datab"
أنا فقط أدرس ، لذلك سأكون سعيدًا بكل التعليقات في الكود. شكرا لاهتمامكم