Table des matières

TP découverte de l'API HAL

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 est ici

Cliquez pour afficher ⇲

Cliquez pour masquer ⇱

Le plus simple pour cela est d'utiliser les facets c'est à dire de faire une requète avec les parametre suivant:

q=submittedDateY_i:2022
fl=keyword_s,submittedDateY_i
wt=json
facet=true
facet.field=keyword_s

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

Récupération en python

Vous pouvez utiliser le notebook à cette url https://jupyter.imst.os.univ-lyon1.fr/

Requests est une bibliothèque python facilitant les requète HTTP donc sur les API basée sur le web.

Correction de la première question

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

#!/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")

* Utilisez les facettes pour obtenir

Visualisation de données

Nous allons utiliser la librairie plotly pour afficher les résultats.