sian:2022:apihal

Différences

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

Lien vers cette vue comparative

Les deux révisions précédentes Révision précédente
Prochaine révision
Révision précédente
sian:2022:apihal [2022/10/25 16:27] fabien.ricosian:2022:apihal [2022/12/13 23:11] (Version actuelle) – [Visualisation de données] fabien.rico
Ligne 7: Ligne 7:
     * le champ ''fl''     * le champ ''fl''
     * le champ ''sort'', les champs ''rows'' et ''start''     * 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.1666708058.txt.gz
  • Dernière modification : 2022/10/25 16:27
  • de fabien.rico