Voici le déroulement de cet article. __1. Activer le téléchargement directement à partir du lien partagé Google Drive __ __2. Téléchargez les données à l'aide de l'URL ci-dessus avec python ou wget, curl (sur CLI) __ __3. Précautions lors de l'exécution avec Google Coloaboratory __
Si vous créez un lien de partage de fichiers sur Google Drive, vous devrez passer à la page suivante et le télécharger manuellement.
Cliquez ensuite sur l'URL et convertissez l'URL afin de pouvoir la télécharger directement. Il existe des outils de conversion d'URL, etc., mais vous pouvez télécharger directement à partir de l'URL en réécrivant simplement l'URL comme suit.
file/d
->uc?id=
oruc?export=download&id=
/view?usp=sharing
->
https://drive.google.com/file/d/<file_id>/view?usp=sharing
↓
https://drive.google.com/uc?id=<file_id>
or
https://drive.google.com/uc?export=download&id=<file_id>
Code pour spécifier l'URL convertie plus tôt et télécharger avec urlretrieve, wget, curl Python
import urllib.request
import sys
url = "https://drive.google.com/uc?export=download&id=<file_id>"
file_name = "file_name"
urllib.request.urlretrieve(url, file_name)
Shell
wget "https://drive.google.com/uc?export=download&id=<FILE_ID>" -O <FILE_NAME>
or
curl "https://drive.google.com/uc?export=download&id=<FILE_ID>" -O <FILE_NAME>
Si la taille du fichier est trop grande comme indiqué ci-dessous, l'analyse antivirus ne sera pas effectuée, une confirmation sera donc requise lors du téléchargement, et lorsque le code ci-dessus sera exécuté, le fichier html de la page de confirmation elle-même sera téléchargé.
Pour éviter cela, vous devez obtenir le code de confirmation. Vous pouvez l'obtenir avec le code suivant.
curl -sc /tmp/cookie "https://drive.google.com/uc?export=download&id=<FILE_ID>" > /dev/null
CODE="$(awk '/_warning_/ {print $NF}' /tmp/cookie)"
curl -Lb /tmp/cookie "https://drive.google.com/uc?export=download&confirm=${CODE}&id=<FILE_ID>" -o <FILE_NAME>
Exécutez simplement le code ci-dessus dans la cellule, mais le simple fait d'ajouter !
Au début de la ligne comme indiqué ci-dessous ne sauvegarde pas la variable. Par conséquent, vous pouvez l'exécuter comme un script shell en écrivant %% shell au début de la cellule.
Ajouter %% shell au début du code ci-dessus
Honnêtement, je ne ressens pas vraiment le besoin de le faire car je n'ai qu'à le mettre sur mon Drive à partir du lien de partage, mais lol je ne peux pas mettre beaucoup de données sur github, donc lors du partage d'un fichier notebook de Google Colaboratory, etc. Je me suis demandé s'il y avait un avantage à ne devoir exécuter la cellule qu'immédiatement après le clonage en l'écrivant à l'avance.
Télécharger les données Google Drive publiées avec curl ou wget Télécharger des fichiers sur le Web avec Python
Recommended Posts