آسف على إزعاجك ، لكني واجهت مشكلة منذ فترة طويلة. ومع ذلك ، ليس من المستقر بالنسبة لي تنزيل مجموعة البيانات الكبيرة من Zenode باستخدام المتصفح. لذا يتبادر إلى ذهني استخدام "wget" ، ولكن عندما أتبع النهج الوارد في " المشكلات" ، فقد فشلت.
من الإصدار السابق ، أستخدم:
curl https://zenodo.org/api/records/3407840
حصلت على واجهة برمجة تطبيقات REST:
https://zenodo.org/api/files/f0d7eb3a-9575-4297-8a9f-39564e383750/Center٪28Left_Down٪29.zip.001
لكنني حصلت على 404 تمامًا مثل عدم استخدام واجهة برمجة تطبيقات REST.
wget -r https://zenodo.org/api/files/f0d7eb3a-9575-4297-8a9f-39564e383750/Center%28Left_Down%29.zip.001
هل يمكن أن تساعدني؟ شكرا!
نظرًا لأن ملفات هذا السجل مضبوطة على وصول مقيد ، فهي غير متاحة للجمهور ، وللوصول إليها ستحتاج إلى رمز وصول للتحقق من هويتك ، والذي يمكنك إنشاؤه هنا أو يجب عليك اتباع الإجراء المعروض.
إغلاق هذا لأنه ليس خطأ.
كيفية استخدام الرمز المميز؟ اي فكرة؟ ثاكس كثيرا
أنا في حاجة إليها أيضا ، أي شخص يعرف؟
أنا فضولي أيضًا
تضمين التغريدة
فيما يلي خطوات تنزيل الملفات
من سطر الأوامر نفسه
1- الحصول على الرمز الشخصي (الذي ربما يكون لديك بالفعل)
2- قم بتشغيل الأوامر التالية
curl --cookie zenodo-cookies.txt "https://zenodo.org/record/1117372?token=<your token here>"
استبدل الرقم القياسي 1117372 بالسجل المناسب
بمجرد إنشاء ملف تعريف الارتباط ،
الآن فقط ادخل إلى متصفحك ، وانقر بزر الماوس الأيمن على زر التنزيل وانسخ عنوان url الخاص به
يجب أن يبدو مثل https://zenodo.org/record/1117372/files/musdb18.zip؟
الآن ،
فقط قم بتشغيل هذا الأمر على جهازك الطرفي ،
curl --cookie zenodo-cookies.txt "https://zenodo.org/record/1117372/files/musdb18.zip?download=1" --output musdb18.zip
استبدل رابط التنزيل بعنوان URL الخاص بالتنزيل
ويجب أن يبدأ التنزيل ،
واستبدل اسم الملف على - إخراج musdb18.zip
باسم الملف المناسب الذي تريده
هذه هي الطريقة التي تناسبني ،
اسمحوا لي أن أعرف إذا كنت تواجه أي مشاكل ،
أتمنى لك يوما عظيما !
كنت أواجه مشكلة في نهج ملفات تعريف الارتباط ، لذلك استخدمت نهج zenodo API (في Python) بدلاً من ذلك.
أولاً ، قمت بإنشاء رموز وصول شخصية (وليس تطبيقات المطور) ، وقمت بتعيينها إلى المتغير ACCESS_TOKEN
. ثم سألت عن جميع الملفات المتاحة للتنزيل في سجلي:
import requests
ACCESS_TOKEN = "replace this with your access token"
record_id = "replace this with your record"
r = requests.get(f"https://zenodo.org/api/records/{record_id}", params={'access_token': ACCESS_TOKEN})
download_urls = [f['links']['self'] for f in r.json()['files']]
filenames = [f['key'] for f in r.json()['files']]
print(r.status_code)
print(download_urls)
الآن بعد أن أصبح لدي عناوين url للملفات التي أريد تنزيلها بالإضافة إلى أسمائها (أي مفتاح) ، يمكنني فقط تنزيلها باستخدام requests.get
وحفظها في ملف:
for filename, url in zip(filenames, download_urls):
print("Downloading:", filename)
r = requests.get(url, params={'access_token': ACCESS_TOKEN})
with open(filename, 'wb') as f:
f.write(r.content)
لقد جربت هذا وعملت معي:
https://gist.github.com/slint/d47fe5628916d14b8d0b987ac45aeb66#file -zenodo-limited-curl-sh-L26
التعليق الأكثر فائدة
لقد جربت هذا وعملت معي:
https://gist.github.com/slint/d47fe5628916d14b8d0b987ac45aeb66#file -zenodo-limited-curl-sh-L26