« Wikisource:Gallica/gallica.py » : différence entre les versions

Contenu supprimé Contenu ajouté
→‎Code : Utilisation de l'interface IIIF pour récupérer la taille de l'image
Ligne 30 :
== Code ==
<syntaxhighlight lang="python" enclose="div"># Télécharge un livre sur Gallica en haute définition
# Télécharge un livre sur Gallica en haute définition
# À enregistrer sous le nom gallica.py et exécuter avec Python 3.
# Utilisation de base :
# Exemple pour récupérer les pages 1 à 50
# python gallica.py bpt6k1073366t 11 638
# du document https://gallica.bnf.fr/ark:/12148/bpt6k1073366t/ :
# Pour plus d’informations, voir https://fr.wikisource.org/wiki/Wikisource:Gallica/gallica.py
# python gallica.py bpt6k1073366t 111 63850
 
import argparse
import urllib.request
Ligne 40 ⟶ 42 :
 
def get_size(ark, i):
# url = "https://gallica.bnf.fr/proxy?method=M&ark={}.f{}".format(ark, i)
url = "https://gallica.bnf.fr/iiif/ark:/12148/{}/f{}/info.json".format(ark, i)
with urllib.request.urlopen(url) as f:
return json.loads(f.read())
Ligne 54 ⟶ 57 :
page de début et la page de fin. Exemple pour le document
https://gallica.bnf.fr/ark:/12148/bpt6k1073366t/ :
python gallica.py bpt6k1073366t 111 638649
 
Si toutes les pages ont une taille et des marges comparables,
on peut supprimer ces marges en utilisant les paramètres optionnels :
python gallica.py bpt6k1073366t 111 638649 -x 100 --largeur 1800 -y 400 --hauteur 2500
""")
# Arguments obligatoires
Ligne 85 ⟶ 88 :
taille = get_size(ark, i)
if verbose:
print("Taille de la page : {}/{}".format(taille["width"], taille["height"]))
if largeur is None:
largeur = taille["width"]