1. Le script scrap-docjf.py
:
- Se connecte à la base de données documentaire DocJF.
- Télécharge les rapports en formats
.docx
dans le dossierdata
. Le format.docx
est le seul accepté par le script ; les fichiers en.pdf
ne sont pas téléchargés. Le dossierdata
est créer s'il n'existe pas. - Génère un fichier appelé
metadonnes.csv
qui contient des informations sur les rapports téléchargés. Ces informations proviennent des fiches descriptives de DocJF.
Spécifications du fichier metadonnes.csv
:
- Colonnes et types :
Clé Flora | Date du document | Nombre de fichier sauvegardé | Titre | Type document | Juridiction | Entité Productrice (TODO: remove) |
---|---|---|---|---|---|---|
int |
date (dd/mm/yyyy) |
int |
string |
string |
string |
string |
- Encodage :
ISO-8859-1
(quand le script est lancé depuis Windows). - Séparateur :
;
2. Le script convert-docx.py
:
- Ouvre tous les fichiers en format
.docx
présents dans le dossierdata
. - Transforme le format
.docx
en format.html
. - Enregistre les fichiers en format
.html
dans le même dossier.
3. Le script create-csv.py
:
- Ouvre tous les fichiers en format
.html
dans le dossierdata
et ouvre le fichiermetadonnes.csv
. - Modifie les fichiers
.html
en enlevant notamment la partie<head>
. - Crée une version simplifié du rapport qui sera utilisée pour l'indexage appelé
Texte index
. Pour créer cette version, le.html
est purgé de toutes les balises (<div>
,<table>
,<p>
, etc.), purgé d'une liste de mots vides (le
,la
,du
, etc.) et seuls les 30000 premiers caractères sont conservés (si on tente d'indexer le rapport entier, on a cette erreur). Cette version simplifié sera utilisé pour indexer les rapports dans Elasticsearch, afin de respectant les limites en terme de taille de donnée. - Génère un fichier appelé
data.csv
qui contient l'ensemble des rapports enhtml
, l'ensemble des rapports simplifiés et d'autres métadonnées.
Spécifications du fichier data.csv
:
- Colonnes et types :
Numéro de dossier | Juridiction | Type | Année | Publication | Objet | Thème et sous thème | Mots clés | Rapport | Texte index |
---|---|---|---|---|---|---|---|---|---|
int |
string |
string |
data (yyyy) |
data (dd/mm/yyyy) |
string |
string |
string |
string |
string |
- Encodage :
utf-8
. - Séparateur :
,
4. La commande ccomptes load "data.csv"
:
- Charge les données stockées dans le fichier
data.csv
. - Stock les données dans une base de données
mongoDB
. - Si le chargement est effectif, les lignes suivantes sont imprimées :
Loading data.csv
..........................
Processed n rows
5. La commande ccomptes reindex
:
- Indexe les données contenues dans la base de données
mongoDB
dans le moteur de rechercheElasticsearch
. - Si l'indexation est effective, les lignes suivantes sont imprimées :
Deleting index ccomptes
..........................
Indexed 26 reports
6. La commande ccomptes runserver
:
- Lance le serveur de développement de Flask.
- Si le lancement est effectif, les lignes suivantes sont imprimées :
* Running on http://0.0.0.0:5000/ (Press CTRL+C to quit)
* Restarting with stat
* Debugger is active!
* Debugger PIN: ***-***-***
- Pour effacer la base de données
mongoDB
:mongo ccomptes --eval "db.dropDatabase()"