Сделать экспорт файлов и ссылок с указанием дат сообщений, в которых была найдена ссылка
Lemonbrush opened this issue · comments
Сейчас скрипт выводит в файл links_info.json все ссылки на все вложения по каждому диалогу вразнобой. В результате получается сплошной список ссылок на все вложения подряд. При такой реализации работа с выходными данными сильно затрудняется
Как сейчас:
"134225462": {
"name": "DELETED",
"dialog_link": "https://vk.com/id134225462",
"error": [
"https://vk.com/doc134225462_296574017"
]
}
Как хотелось бы:
"134225462": {
"name": "DELETED",
"dialog_link": "https://vk.com/id134225462",
"error": [{
"date": "2014-01-01T23:28:56.782Z",
"link": "https://vk.com/doc134225462_296574017"
}]
}
При таком решении, в каждом объекте со ссылкой будет лежать дата, которая указана в сообщении с вложением, на которое ведет эта ссылка. Тогда выходные данные будут структурированы, и работа с ними будет максимально понятной и удобной. Это особенно хорошо видно на экспорте данных из очень старых переписок, из которых получается около 20К+ фотографий
@Lemonbrush, я добавил возможность разделения скачиваемых файлов на подпапки, имя которых будет основано на дате. Я посторался проверить все случаи, но у меня не такая внушительная коллекция данных, как у вас. Используйте изменения последнего коммита.
Проверьте, работает ли это у вас. Моя логика немного отличается от вашего.
Спасибо большое за оперативность
Попробовал прогнать скрипт, однако у меня все еще появляются ошибки SSL сертификата на каждую ссылку. Я потратил какое-то время на то, чтобы разобраться как это пофиксить, но, к сожалению, моей экспертизы недостаточно для этого. Поэтому, в итоге я просто сделал мелкий скрипт, который проходится по содержимому info_links.json и скачивает данные по всем ссылкам из error проперти этого файла
Если включить куки, то скрипт выдаст ошибку доступа. Хотя я уже и пароль вводил, и через sudo вызывал
Вижу, что разделение по датам есть, так как в папках появились папки с датами, однако файл info_links.json, куда сливаются все ссылки, которые не удалось скачать, больше не появляется, так что мне не удалось посмотреть результаты скрипта. Если только косвенно, по пустым папкам
Ошибки:
| ERROR | Ошибка 🔗 https://psv4.userapi.com/c628601//u323327289/audiomsg/d2/fa81a0f747.ogg: Cannot connect to host psv4.userapi.com:443 ssl:True [SSLCertVerificationError: (1, '[SSL: CERTIFICATE_VERIFY_FAILED] certificate verify failed: self signed certificate in certificate chain (_ssl.c:992)')]
Если включить куки, то скрипт выдаст ошибку доступа. Хотя я уже и пароль вводил, и через sudo вызывал
Пользователи bs4 сталкиваются с этой проблемой, особенно с Google Chrome. В послдних версиях этот браузер блокирует доступ к своим куки, если он открыт. Я закрываю его перед началом крипта, после прочтения куки браузер можно снова открыть. Подробнее можно посмотреть тут: #21.
Попробовал прогнать скрипт, однако у меня все еще появляются ошибки SSL сертификата на каждую ссылку
Можете описать свое окружение? OS, версия Python и т.д.
Так же был бы рад, если вы пришлете лог файл, который создается в папке ./logs
.
Окей, без проблем. Сегодня вечером отпишу подробнее и приложу файл с логами
Пока могу только сказать, что у скрипт прогоняю на macOS последней версии и гугл хром у меня не запущен
Лог файлы выслал на почту. Один лог файл с запуска с куки, и онин без кук
Python 3.11.1
macOS 14.0 Sonoma
Есть еще вот такая ошибка при обработке профиля
Да, я совсем забыл про документы. Они пока без разделения по папкам, релизую позже, проблему исправил.
Пока разбираюсь с проблемой SSL.
Спасибо. Я всегда на связи. Если нужна какая-то помощь, то по мере своих возможностей могу помочь
@Lemonbrush
Я наткнулся на два решения по поводу SSL. Они не совсем новые, но могут помочь. Кажется, проблема заключается в работе OpenSSL Python на MacOS. У меня нет этой системы и мне не на чем проверить данную теорию. Если будете решать проблему данными путями, используйте это с осторожностю. Учитывая нормальное поведение на Windows и Linux, кажется, проблема и правда в MacOS или конфигурации Python на ней.
https://stackoverflow.com/questions/42098126/mac-osx-python-ssl-sslerror-ssl-certificate-verify-failed-certificate-verify
https://stackoverflow.com/questions/40684543/how-to-make-python-use-ca-certificates-from-mac-os-truststore
Последний коммит?
Убрал обработку профиля, и кажется заработало. Проверяю
@Lemonbrush
Я внес довольно много изменение, которые так же относится и к вашему вопросу.
- Есть разделение по дате для документов и фотографий из сообщений;
- Теперь есть поддержка понравившихся фото, но без даты, т.к. ее в архиве нет.
Проверьте, как у вас будет время, не забыв вытянуть последние изиенения.
Все прекрасно работает. Спасибо большое. Этот скрипт сохранил мне как минимум пару лет жизни
@Lemonbrush
Если вам не трудно, проверье у себя проблему старых фотографий.
Я так понимаю, у вас есть фотографии, старше 2012 года. Хотелось бы знать, на сколько это проблема выражена.
Если у вас есть такая же проблема с качеством фотографий, опишите их в топик по ссылке.
Был рад вам помочь :)
Без проблем. Ещё раз прогоню скрипт, уже с последними изменениями, и отпишу по результатам
Наверное проще всего будет просто поменять формат даты на такой - 2023.10.15
Тогда все папки с вложениями будут сами рассортированы по году, месяцу и числу
Еще после скрипта остается очень много пустых папок. Возможно хорошей идеей будет сделать пост обработку директории, в рамках которой будут удаляться все пустые папки
sudo find .../Desktop/VKArchiveDownloader/output/profile/documents -type d -empty -delete
@Lemonbrush
Если это для вас еще актуально, было выпущено обновление, где исправлена проблема создания пустых папок.
Всегда актуально. Спасибо большое