sian:2022:apihal

Différences

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

Lien vers cette vue comparative

Prochaine révision
Révision précédente
sian:2022:apihal [2022/10/25 16:22] – créée fabien.ricosian:2022:apihal [2022/12/13 23:11] (Version actuelle) – [Visualisation de données] fabien.rico
Ligne 3: Ligne 3:
 Hal est une plateforme numérique pour le dépôt et le partage d'articles scientifiques. Il contient environ 2 000 000 de notice bibliographique et 1 000 000 d'articles. Cette plateforme propose une API pour la récupération des informations sur les documents dont la documentation [[https://api.archives-ouvertes.fr/docs/search|est ici]] Hal est une plateforme numérique pour le dépôt et le partage d'articles scientifiques. Il contient environ 2 000 000 de notice bibliographique et 1 000 000 d'articles. Cette plateforme propose une API pour la récupération des informations sur les documents dont la documentation [[https://api.archives-ouvertes.fr/docs/search|est ici]]
  
-  * Régardez rapidement la documentation, en comparant au requêtes SQL, comment considérez-vous les champs suivant : +  * Regardez rapidement la documentation, en comparant au requêtes SQL, comment considérez-vous les champs suivant : 
-    * +    * le champ ''q'' ou les filtres ''fq'' 
 +    * le champ ''fl'' 
 +    * le champ ''sort'', les champs ''rows'' et ''start'' 
 +    * les ''facets'' 
 + 
 +  * Quel paramètres de requêtes faudrait-il envoyer pour obtenir les différents mots clefs utilisés cette année dans les articles déposés ? 
 + 
 +<hidden> 
 +Le plus simple pour cela est d'utiliser les ''facets'' c'est à dire de faire une requète avec les parametre suivant: 
 + 
 +<code> 
 +q=submittedDateY_i:2022 
 +fl=keyword_s,submittedDateY_i 
 +wt=json 
 +facet=true 
 +facet.field=keyword_s 
 +</code> 
 + 
 +Ce qui donne l'url [[https://api.archives-ouvertes.fr/search/?q=submittedDateY_i:2022&fl=keyword_s,submittedDateY_i&wt=json&facet=true&facet.field=keyword_s|]] 
 +</hidden> 
 + 
 +===== Récupération en python ===== 
 + 
 +Vous pouvez utiliser le notebook à cette url [[https://jupyter.imst.os.univ-lyon1.fr/]] 
 + 
 +[[https://pypi.org/project/requests/|Requests]] est une bibliothèque python facilitant les requète HTTP donc sur les API basée sur le web.   
 + 
 +  * En utilisant''requests'', téléchargez les informations de l'ensemble des articles du laboratoire ELICO. Affichez les titres et les auteurs. Enfin, stockez le résultat dans un fichier. 
 +  
 + 
 + 
 +<hidden Correction de la première question> 
 +Le notebook peux être trouvé ici: 
 +[[https://jupyter.imst.os.univ-lyon1.fr/hub/user-redirect/lab/tree/public/api_hall.ipynb]] 
 + 
 +Voici son code 
 +<code> 
 +#!/usr/bin/env python 
 +# coding: utf-8 
 + 
 +# # Utilisation de request 
 + 
 +# In[31]: 
 + 
 + 
 +import requests 
 +import json 
 +import pandas as pd 
 + 
 + 
 +# In[59]: 
 + 
 +parametres = { 
 +    "q":"labStructAcronym_s:ELICO", 
 +    "wt":"json", 
 +    "fl":"authFullName_s,title_s", 
 +    "rows": 10000 
 +
 + 
 + 
 +# In[60]: 
 + 
 +r = requests.get('https://api.archives-ouvertes.fr/search/', params=parametres) 
 + 
 + 
 +# In[64]: 
 + 
 +resultat = r.json() 
 +liste_reps = resultat["response"]["docs"
 +# print(liste_reps) 
 + 
 +# In[71]: 
 + 
 +result = [] 
 +for rep in liste_reps: 
 +    elem = {} 
 +    elem["titre"] = rep["title_s"][0] 
 +    elem["nbAuteur"] = len(rep["authFullName_s"]) 
 +    elem["auteurs"] = rep["authFullName_s"
 +#    print(elem) 
 +    result.append(elem) 
 +     
 +df = pd.DataFrame(result) 
 + 
 + 
 +# In[72]: 
 + 
 + 
 +df 
 + 
 + 
 +# In[78]: 
 + 
 +df.to_excel("article_elico.xlsx"
 + 
 +# In[79]: 
 + 
 +df.to_csv("article_elico.csv"
 + 
 + 
 +</code> 
 + 
 +</hidden> 
 + 
 + * Utilisez les facettes pour obtenir 
 +   * le nombre d'article par an, 
 +   * le nombre d'article par auteur. 
 + 
 + 
 +===== Visualisation de données ===== 
 + 
 +Nous allons utiliser la librairie [[https://plotly.com/python/|plotly]] pour afficher les résultats. 
 + 
 +  * Affichez le nombre d'articles par an sous la forme d'un [[https://plotly.com/python/line-charts/|line-chart]] 
 +  * Affichez le nombre d'articles par auteur sous la forme d'un [[https://plotly.com/python/bar-charts/|bar-chart]]  
 + 
 + 
  
    
  • sian/2022/apihal.1666707758.txt.gz
  • Dernière modification : 2022/10/25 16:22
  • de fabien.rico