Python, web services, oai

June 17, 2006

J'ai repris mes exerices pythonesques.

D'abord en simplifiant les lignes faites la dernière fois. En fait: importer sys n'est pas utile, et il n'est pas non plus utile de faire tout le détail s'il y a un sous champ subfield, s'il y a qq chose dedans, etc. Ici je fais directement afficher le contenu du sous-cham; s'il n'existe pas Python ne soulève pas d'exception, il passe.

Et j'ai ajouté des trucs:

  • je prends plusieurs notices, il cherche tous les 610
  • avant de traiter le fichier xml, je créé une liste vide: hintslist
  • je n'imprime plus le contenu du sous-champ, je l'ajoute à la suite dans la liste, en le transformant en minuscules à la volée. J'ai donc une liste, en minuscules, de tous les champs 610 rencontrés.
  • je créé une seconde liste (sortedhints), qui prend le contenu de la première liste et applique deux traitement: dédoublonner les sujets et trier par ordre alphabétique.

Ce qui donne:

from elementtree import ElementTree

intslist = [] # creates an empty list, or empties the list if it existed

tree = ElementTree.parse("2notices.xml&quot ;)

for node in tree.findall(".//varfield"): # gets all the varfield nodes

if node.get("id&quot ;) == "610": # only gets varfield with 610, subject in Unimarc

for child in node: # loop: for each subfield..

hintslist.append(child.text.lower()) # appends text of subfield to hintslist, in lowercase

sortedhints = [] # creates another empty list, to be used to sort and deduplicate results

for hints in sorted(set(hintslist)):

sortedhints.append(hints)

Par contre pour le web service, ça va pas le faire.

J'ai bien trouvé comment interroger un web service en python, mais je m'aperçois que dans Aleph, x-Server limite l'ensemble résultat à 1000 réponses. Tout mon catalogue de 400.000 notices a découper en tranches de 1000 notices, ça va pas le faire du tout.

Par contre il y a un serveur OAI-PMH sur Aleph. Que j'ai commencé à paramétrer. La commande http://corto.uang:8991/OAI-script?verb=Identify me donne:

<OAI-PMH xsi:schemaLocation="http://www.openarchives.org/OAI/2.0/ http://www.openarchives.org/OAI/2.0/OAI-PMH.xsd">
<responseDate>2006-06-17T10:26:07Z</responseDate>
<request verb="Identify">http://corto.uang:8991/OAI-script</request>
<Identify>
<repositoryName>Bibliotheque Universitaire d'Angers</repositoryName>
<baseURL>http://corto.uang:8991/OAI-script</baseURL>
<protocolVersion>2.0</protocolVersion>
<adminEmail>nicolas.morin@univ-angers.fr</adminEmail>
<earliestDatestamp>2005-12-20</earliestDatestamp>
<deletedRecord>no</deletedRecord>
<granularity>YYYY-MM-DD</granularity>
</Identify>
</OAI-PMH>

Le serveur OAI-PMH d'Aleph supporte oai-dc comme format d'export des notices, c'est-à-dire le même format d'export que le web service, pour lequel j'ai écrit mon script Python.

Je vais plutôt suivre cette piste.

Entry Filed under: Uncategorized. .

2 Comments Add your own

  • 1. Timothee  |  June 28, 2006 at 2:46 pm

    Tu peux paramétrer le nombre de résultats obtenus par l’API. La limite est de 20000 résultats.

  • 2. nicolas morin  |  July 3, 2006 at 8:00 am

    Merci de cette précision intéressante. Malgré tout, ce n’est pas la voie la plus utile pour exporter son catalogue… Au moins pour l’export initial.

Leave a Comment

Required

Required, hidden

Some HTML allowed:
<a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong>

Trackback this post  |  Subscribe to the comments via RSS Feed


Feeds

Recent Comments

nicolas morin on Python, web services, oai
Clio on BPI chat - 6 mois plus t…
Timothee on Python, web services, oai
Clémence on BPI chat - 6 mois plus t…
nicolas morin on BPI chat - 6 mois plus t…

Archives

Links