Skip to content

Выгрузка всех фотографий из диалогов

License

Notifications You must be signed in to change notification settings

billiedark/DumperVK

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

15 Commits
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Скрипт выгружает все фотографии из диалогов VK через токен

После окончания работы, в вашей папке будет + 3 файла (Женские вложения, мужские, не определено)
N|Solid

В каждом таком HTML файле находятся фотографии из диалогов, а так же каждая фотография подписана из какого диалога была взята
N|Solid

Необходимые библиотеки:

pip install vk-api

Файл photo_pre.html

<!DOCTYPE HTML>
<html>
    <head>
        <meta http-equiv="Content-Type" content="text/html; charset=utf-8">
        <title>NISTA DUMPER</title>
    </head>
<body>
    <div class="full"></div>
        <div class="body">NISTA-DUMPER</div>

Файл main.py

import vk_api
import os


path, filename = os.path.split(os.path.abspath(__file__))


token = input("Введите токен: ") # Запрашиваем токен

vk_session = vk_api.VkApi(token=token) # Авторизуемся
vk = vk_session.get_api()
photo = open(f'{path}/photo_pre.html', 'r', encoding="utf8")
file = photo.read()
file2 = photo.read()
file1 = photo.read()
photo.close()

try:
    getinfo = vk.account.getProfileInfo() # Получаем информацию о профиле
    iddd = getinfo["id"] # ID аккаунта
    vk_name = getinfo["first_name"] # Имя
    vk_rename = getinfo["last_name"] # Фамилию

    test = vk.messages.getConversations(count=200) # Получаем диалоги через токен
    num = test["count"] # Количество диалогов
    print(f"Всего найдено диалогов: {num}")
    print(f"Начинаю выгрузку фотографий | {vk_name} {vk_rename} - vk.com/id{iddd}")
    for i in test["items"]: # Идем по списку
        idd = i["conversation"]["peer"]["id"] # Вытаскиваем ID человека с  диалога
        peer_type = i['conversation']['peer']['type'] # Информация о диалоге (конференция это или человек)
        if peer_type == "user": # Ставим проверку конференции
            if idd > 0: # Ставим проверку на группы
                print(f"Выгрузка фотографий - {idd}")
                testtt = vk.users.get(user_ids=idd, fields="sex") # Получаем информацию о человеке
                for b in testtt: # Идем по списку
                    pol_ebaniy = b["sex"] # Вытаскиваем пол
                    if pol_ebaniy == 1: # Если девочка то:
                        fo = vk.messages.getHistoryAttachments(peer_id=idd, media_type='photo', start_from=0,
                                                                count=200,
                                                                preserve_order=1, max_forwards_level=45)
                        for i in fo["items"]: # Идем по списку вложений
                            for j in i["attachment"]["photo"]["sizes"]:
                                if j["height"] > 500 and j["height"] < 650: # Проверка размеров
                                    url = j["url"] # Получаем ссылку на изображение
                                    file += f'<img class="photos" src="{url}" alt="Не удалось загрузить (:" title="Найдено в диалоге - vk.com/id{idd}">' # Сохраняем в переменную
                    elif pol_ebaniy == 2: # Если мальчик то:
                        fo = vk.messages.getHistoryAttachments(peer_id=idd, media_type='photo', start_from=0,
                                                                count=200,
                                                                preserve_order=1, max_forwards_level=45)
                        for i in fo["items"]:
                            for j in i["attachment"]["photo"]["sizes"]:
                                if j["height"] > 500 and j["height"] < 650:
                                    url = j["url"]
                                    file1 += f'<img class="photos" src="{url}" alt="Не удалось загрузить (:" title="Найдено в диалоге - vk.com/id{idd}">'
                    else: # Иначе
                        fo = vk.messages.getHistoryAttachments(peer_id=idd, media_type='photo', start_from=0,
                                                                count=200,
                                                                preserve_order=1, max_forwards_level=45)
                        for i in fo["items"]:
                            for j in i["attachment"]["photo"]["sizes"]:
                                if j["height"] > 500 and j["height"] < 650:
                                    url = j["url"]
                                    file2 += f'<img class="photos" src="{url}" alt="Не удалось загрузить (:" title="Найдено в диалоге - vk.com/id{idd}">'
            else:
                print("Это группа!")
        else:
            print("Это конфа!")

        save_photo = open(f'{path}/Девочки - id{iddd}.html', 'w+', encoding="utf8") # Открываем файл
        save_photo.write(file) # Сохраняем диалог
        save_photo.close() # Закрываем
        save_photos = open(f'{path}/Мальчики - id{iddd}.html', 'w+', encoding="utf8")
        save_photos.write(file1)
        save_photos.close()
        save_photoss = open(f'{path}/Не определено - id{iddd}.html', 'w+', encoding="utf8")
        save_photoss.write(file2)
        save_photoss.close()


except Exception as e: # Исключения ошибок
    print(e)

About

Выгрузка всех фотографий из диалогов

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published