Outils pour utilisateurs

Outils du site


web:api:archiveouverte

Différences

Ci-dessous, les différences entre deux révisions de la page.

Lien vers cette vue comparative

web:api:archiveouverte [2020/01/06 11:21] – Création rootweb:api:archiveouverte [2020/01/06 15:56] (Version actuelle) – Ajout du script Python "Télécharger les documents liés à un résultat" root
Ligne 8: Ligne 8:
  
   https://api.archives-ouvertes.fr/search/CSMA2015/?rows=10000&fl=*   https://api.archives-ouvertes.fr/search/CSMA2015/?rows=10000&fl=*
 +
 +====Scripts python====
 +  * Télécharger les documents liés à un résultat
 +
 +<code python>
 +import json
 +import re
 +import urllib
 +import urllib.request
 +import os.path
 +
 +#Chemin où sont enregistré les résultats des requêtes au format JSON
 +folder = 'C:\\temp'
 +
 +# JSON contenant les résultats des requêtes
 +for annee in ['2005.json', '2007.json', '2009.json', '2011.json', '2013.json', '2015.json']:
 +  with open(folder + annee, 'r', encoding='utf-8') as f:
 +    distros_dict = json.load(f)
 +
 +  regex_num = re.compile('.*hal-(\d+).*')
 +
 +  for distro1 in distros_dict['response']['docs']:
 +    vide = True
 +    for fichiertype in ['files_s', 'fileAnnexes_s']:
 +      if fichiertype in distro1:
 +        for files in distro1[fichiertype]:
 +          vide = False
 +          title_search = regex_num.search(files)
 +          filename = files[files.rfind("/") + 1:]
 +          # On ajoute au nom du fichier le numéro HAL.
 +          newfilename = folder + annee + '-\\' + title_search.group(1) + '-' + filename
 +          if not os.path.isfile(newfilename):
 +            try:
 +              urllib.request.urlretrieve(files, newfilename)
 +            except urllib.error.HTTPError:
 +              print('Impossible de télécharger ' + files)
 +    if vide:
 +      print('Pas de fichiers pour ' + str(distro1['docid']))
 +</code>
web/api/archiveouverte.1578306111.txt.gz · Dernière modification : 2020/01/06 11:21 de root