[PYTHON] Télécharger les données directement depuis l'URL de Drive (Google Colaboratory)

en premier

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 __

Télécharger directement avec le lien partagé Google Drive

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. スクリーンショット 2020-03-02 22.13.21.png

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>

Télécharger avec Python ou Shell

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>

Pour les gros fichiers

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é. スクリーンショット 2020-03-02 22.24.46.png

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écution sur Google Coloboratory

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. スクリーンショット 2020-03-02 22.58.24.png

Ajouter %% shell au début du code ci-dessus

スクリーンショット 2020-03-02 23.02.20.png

décompressez etc.

スクリーンショット 2020-03-02 23.33.13.png

finalement

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.

Référence et devis

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

Télécharger les données directement depuis l'URL de Drive (Google Colaboratory)
Télécharger des fichiers directement sur Google Drive (à l'aide de Google Colaboratory)
[Python] Enregistrez le PDF de Google Colaboratory sur Google Drive! -Collectons des données pour l'apprentissage automatique
Collaboratoire Google
Comment rechercher Google Drive dans Google Colaboratory
Télécharger des images à partir de la liste d'URL en Python
[Python] Téléchargez l'image d'origine à partir de la recherche d'images Google
Télécharger des images à partir d'un fichier texte contenant l'URL
Téléchargez le fichier csv créé par Google Colaboratory
Faire une copie d'un fichier Google Drive à partir de Python
Comment charger des fichiers dans Google Drive avec Google Colaboratory