python — как скачивать файлы с яндекс диска
есть файл: https://yadi.sk/d/xsjJ3dEqb4pvlQ (он открыт) как мне его скачать? не нужна авторизация и т.п.
- python
- python-3.x
- yandex-disk
Вот код для скачивания опубликованного файла. (Ваша ссылка почему-то нерабочая, я для примера вставил свою ссылку. Замените её на свою рабочую, когда она у вас будет)
import requests from urllib.parse import urlencode base_url = 'https://cloud-api.yandex.net/v1/disk/public/resources/download?' public_key = 'https://yadi.sk/d/UJ8VMK2Y6bJH7A' # Сюда вписываете вашу ссылку # Получаем загрузочную ссылку final_url = base_url + urlencode(dict(public_key=public_key)) response = requests.get(final_url) download_url = response.json()['href'] # Загружаем файл и сохраняем его download_response = requests.get(download_url) with open('downloaded_file.txt', 'wb') as f: # Здесь укажите нужный путь к файлу f. write(download_response.content)
Загрузка .csv в DataFrame Pandas с Яндекс диска без авторизации, при наличии публичных ссылок на папку и файл
Библиотеки:
import pandas as pd import requests import urllib import json
Публичные ссылки(на файл и папку можно скопировать при публикации):
folder_url = 'https://yadi.sk/d/my_folder_hash' file_url = 'file.csv' url = 'https://cloud-api.yandex.net/v1/disk/public/resources/download' + '?public_key=' + urllib.parse.quote(folder_url) + '&path=/' + urllib.parse.quote(file_url)
Подготовка ссылки на скачивание:
r = requests.get(url) # запрос ссылки на скачивание h = json.loads(r.text)['href'] # 'парсинг' ссылки на скачивание
Загрузка данных в DataFrame:
df = pd.read_csv(h, sep=';', error_bad_lines=False, comment='#' , encoding='cp1251')
Нужно понимать корректный разделитель и кодировку, у меня это sep=’;’ и encoding=’cp1251′.
Зарегистрируйтесь или войдите
Регистрация через Google Регистрация через Facebook Регистрация через почтуОтправить без регистрации
ПочтаНеобходима, но никому не показывается
Отправить без регистрации
ПочтаНеобходима, но никому не показывается
Нажимая на кнопку «Отправить ответ», вы соглашаетесь с нашими пользовательским соглашением, политикой конфиденциальности и политикой о куки
Как получить прямую ссылку на скачивание в сервисе Яндекс.
ДискСервис предоставляет возможность получить прямые ссылки на скачивание с Яндекс Диска для файлов или папок опубликованных другими пользователями (публичных ресурсов). Здесь Вы можете получить прямую ссылку на видео или изображение на Яндекс Диске, также возможно получить прямую ссылку на любой тип файла за исключением расширения exe. Для тех, у кого еще нет Яндекс Диска, можно зарегистрироваться здесь.
Получение прямых ссылок на скачивание в Яндекс.Диск
Ниже введите список URL Яндекс.Диска, на которые Вы хотите получить прямые ссылки. Ссылки нужно размещать по одной на каждой строке:
Примеры для простых одиночных опубликованных файлов:
https://yadi.sk/i/03bE933n3PqpG2https://yadi.sk/i/VnBOfq7c3PqpG4
https://yadi.sk/i/zmra6SkC3PqpFw
Ниже файлы из публичной папки TestPublicDir, которая находится по адресу https://yadi.
sk/d/AorGx0sxINsItQ: https://yadi.sk/d/AorGx0sxINsItQ/Test Word File 1 In Dir.docxhttps://yadi.sk/d/AorGx0sxINsItQ/Test_Word_File_2_In_Dir.docx
https://yadi.sk/d/AorGx0sxINsItQ/TestSubDir/Test PDF File 1 In Dir.pdf
https://yadi.sk/d/AorGx0sxINsItQ/TestSubDir/Test_PDF_File_2_In_Dir.pdf
Ниже полный файл архива zip публичной папки TestPublicDir, которая находится по адресу https://yadi.sk/d/AorGx0sxINsItQ:
https://yadi.sk/d/AorGx0sxINsItQНиже полный файл архива zip для каталога TestSubDir из публичной папки TestPublicDir, которая находится по адресу https://yadi.sk/d/AorGx0sxINsItQ:
https://yadi.sk/d/AorGx0sxINsItQ/TestSubDir/Форма ¶
Размещение прямой ссылки на сайте
Вариант 1.1. Для конкретного одиночного опубликованного файла. ¶
Если Вы хотите получить ссылку на файл или папку для размещения на своем сайте, то можно использовать следующий URL вида:
https://getfile. dokpub.com/yandex/get/https://yadi.sk/i/03bE933n3PqpG2
Где URL состоит из двух частей:
1) Префикс: https://getfile.dokpub.com/yandex/get/
2) Ссылка: https://yadi.sk/i/03bE933n3PqpG2
Конкатенацией (сцеплением) пунктов 1 и 2 получаем результирующий адрес ссылки.
При обращении пользователя по указанному URL генерируется свежая ссылка для скачивания.
Вариант 1.2. Для файла-вложения в почте Яндекса. ¶
https://getfile.dokpub.com/yandex/get/https://yadi.sk/mail/?hash=XXXXXXXXXXXXXXXXXXXXXXX
Главная особенность Яндекс диска для почты заключается в том, что такую ссылку можно получить для файлов больше 25 МБ. Подробнее об этом здесь: https://yandex.ru/support/disk/actions-files/spec-folders/mail-attachments.html
Вариант 2.
Для конкретного одиночного файла или папки, которые находятся в публичной папке. ¶
Принцип получения ссылки на файл точно такой же как и в Варианте 1.
Если Вы хотите получить ссылку на файл или папку для размещения на своем сайте, то можно использовать следующий URL вида:
https://getfile.dokpub.com/yandex/get/https://yadi.sk/d/AorGx0sxINsItQ/TestSubDir/Test_PDF_File_2_In_Dir.pdf
Где URL состоит из двух частей:
1) Префикс: https://getfile.dokpub.com/yandex/get/
2) Ссылка: https://yadi.sk/d/AorGx0sxINsItQ/TestSubDir/Test_PDF_File_2_In_Dir.pdf
TestSubDir — подкаталог в публичной папке TestPublicDir (https://yadi.sk/d/AorGx0sxINsItQ).
Test_PDF_File_2_In_Dir.pdf — имя конечного файла.
Конкатенацией (сцеплением) пунктов 1 и 2 получаем результирующий адрес ссылки.
При обращении пользователя по указанному URL генерируется свежая ссылка для скачивания.
На данный момент в форме генерируются ссылки HTTPS, но возможно также использовать прямые ссылки HTTP, например, http://getfile.dokpub.com/yandex/get/https://yadi.sk/i/03bE933n3PqpG2 — может быть полезно использовать подобные ссылки для пользователей, которые используют старые браузеры.
Если у вас возникают проблемы со встраиванием ссылок на вашем сайте, то частичное решение проблем описано здесь.
Updates
2015.11.22 В целях безопасности нашего сайта и пользователей сервис не позволяет генерировать прямые ссылки на файлы с расширением exe. Если нужно поставить ссылку на такой файл, то можно запаковать его в архив zip, 7z или rar.
2018.09.11 Реализовали возможность получать прямые ссылки для файлов и Папок из публичных Папок(Каталогов), возможно также получение полной копии в виде архива zip публичной папки. Подробное описание здесь: https://getfile.dokpub.com/yandex/#public-folder (Вариант 2. Для конкретного одиночного файла или папки, которые находятся в публичной папке.