Desculpe incomodá-lo, mas já enfrento um problema há muito tempo. Não é estável para mim baixar o grande conjunto de dados do Zenode usando o navegador, no entanto. Portanto, o uso de 'wget' vem à minha mente, mas quando sigo a abordagem fornecida em Problemas , falhei.
Do antigo problema, eu uso:
curl https://zenodo.org/api/records/3407840
Eu tenho a API REST:
https://zenodo.org/api/files/f0d7eb3a-9575-4297-8a9f-39564e383750/Center%28Left_Down%29.zip.001
Mas eu tenho 404 apenas como não usar a API REST.
wget -r https://zenodo.org/api/files/f0d7eb3a-9575-4297-8a9f-39564e383750/Center%28Left_Down%29.zip.001
Você poderia me ajudar? THX!
Uma vez que os arquivos deste registro estão configurados para acesso restrito, eles não estão disponíveis publicamente, para acessá-los você precisaria de um token de acesso para verificar sua identidade, que você pode criar aqui ou deve seguir o procedimento exibido.
Fechando isso porque não é um erro.
como usar o token privado? Qualquer ideia? Thaks muito
Eu também preciso, alguém sabe?
também estou curioso
@thesby @keunwoochoi
Aqui estão as etapas para baixar os arquivos
da própria linha de comando
1- Adquira o token pessoal (que provavelmente você já possui)
2- execute os seguintes comandos
curl --cookie zenodo-cookies.txt "https://zenodo.org/record/1117372?token=<your token here>"
substitua esse número de registro 1117372 pelo seu apropriado
Depois de gerar o arquivo de cookie,
agora é só entrar no seu navegador, clicar com o botão direito do mouse no botão de download e copiar o seu url
deve ser semelhante a https://zenodo.org/record/1117372/files/musdb18.zip?download=1
agora ,
apenas execute este comando em seu terminal,
curl --cookie zenodo-cookies.txt "https://zenodo.org/record/1117372/files/musdb18.zip?download=1" --output musdb18.zip
substitua o link de download pelo seu url de download específico
e deve começar a baixar,
e substitua o nome do arquivo em --output musdb18.zip
com o nome de arquivo apropriado que você deseja
este é o método que funciona para mim,
Deixe-me saber se você tiver algum problema,
Tenha um ótimo dia !
Eu estava tendo problemas com a abordagem dos cookies, então, em vez disso, usei a abordagem da API zenodo (em Python).
Primeiro, criei tokens de acesso pessoais (NÃO aplicativos de desenvolvedor) e atribuí-o à minha variável ACCESS_TOKEN
. Em seguida, consultei todos os arquivos disponíveis para download em meu cadastro:
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)
Agora que tenho os urls dos arquivos que desejo baixar, bem como seus nomes (ou seja, a chave), posso simplesmente baixá-los com requests.get
e salvá-los em um arquivo:
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)
Eu tentei isso e funcionou para mim:
https://gist.github.com/slint/d47fe5628916d14b8d0b987ac45aeb66#file -zenodo-restricted-curl-sh-L26
Comentários muito úteis
Eu tentei isso e funcionou para mim:
https://gist.github.com/slint/d47fe5628916d14b8d0b987ac45aeb66#file -zenodo-restricted-curl-sh-L26