Recherche des cookies OK. Utilisation d'argparse et suppression de settings.py

This commit is contained in:
Sdj Geek 2020-06-16 23:27:47 +02:00
parent 6f7028bb0e
commit ac82d33c3a
3 changed files with 35 additions and 32 deletions

View File

@ -34,7 +34,7 @@ exemple) pour s'assurer que les registres restent à jour.
### Logiciels
- Git
- Python 3.6
- Python 3.6+
- Virtualenv
Testé uniquement sur GNU/Linux (Ubuntu 18.4)
@ -65,45 +65,43 @@ pip install -r requirements.txt
## Utilisation
Le fichier ```purge-registres-deces-insee/settings.py``` contient les
paramètres à configurer :
Aller sur le [site de l'Église](https://lcr.churchofjesuschrist.org),
et se connecter au compte SDJ. Puis lancer le script.
```bash
source localenv/bin/activate
python purge-registres-deces-insee/trouver_deces.py chemin_base_donnees chemin_repertoire_sortie numeros_unites
```
Avec :
- chemin_base_donnees : Le chemin vers le [fichier
téléchargé](https://git.roflcopter.fr/sdjgeek/purge-registres-deces-insee/-/wikis/home#t%C3%A9l%C3%A9charger-la-base-de-donn%C3%A9e)
- chemin_repertoire_sortie : Le chemin vers le répertoire qui
contiendra la fichiers de sortie
- numeros_unites : La liste des unités que le programme doit
tester. La liste commence par le caractère '['. Les numéros d'unités
sont séparés par des virgules. La liste se termine par le caractère
']'. Par exemple [47823, 67745, 31456]
- cookie : Les cookies de la session au compte SDJ. Pour obtenir ces
cookies il faut :
Le script devrait trouver seul le cookie de session permettant de
consulter la liste des membres. Mais en cas d'échec, il est possible
de lui donner le chemin vers le fichier SQLite que Firefox utilise
pour stocker les cookies avec l'option '-c'. En règle générale ce
fichier se trouve le répertoire :
1- Ouvrir Firefox
- sur linux :
"~/.mozilla/firefox/<un_code_étrange>.default/cookies.sqlite"
2- Ouvrir les outils de développement : CTRL + MAJ + E
- sur windows :
"C:\Users\<nom_utilisateur>\AppData\Local\Mozilla\Firefox\Profiles\<un_code_étrange>.default\cookies.sqlite"
3- Aller sur le site des outils pour greffiers : https://lds.org/lcr
4- Entrer identifiant et mot de passe SDJ
5- Aller dans la liste des membres
6- Dans l'outil de développement, cliquer sur la dernière ligne
7- Dans le panneau de droite, dans la section "En-tête de la requête",
rechercher le champ "cookie"
8- Copier la valeur contenue dans ce champ
- chemin_repertoire_sortie : Le chemin vers le répertoire qui
contiendra la fichiers de sortie
Une fois la configuration effectuée, lancer le script :
Par exemple :
```bash
. localenv/bin/activate
python purge-registres-deces-insee/trouver_deces.py
python purge-registres-deces-insee/trouver_deces.py ~/Documents/fichier-des-personnes-decedees.sqlite ~/Documents/ 123,854 -c ~/.mozilla/firefox/8h3jsedf.default/cookies.sqlite
```
Le script mettra un peu de temps à s'exécuter. En fin d'exécution, le

View File

@ -24,8 +24,8 @@ class SiteEglise:
"""
r = requests.get('https://lcr.churchofjesuschrist.org/services/umlu/report/member-list',
params={'lang': "fra", 'unitNumber': unit_number},
headers={'Accept': "application/json",
'Cookie': self.cookie_jar})
headers={'Accept': "application/json"},
cookies=self.cookie_jar)
r.raise_for_status()
return r.json()
@ -39,7 +39,7 @@ class SiteEglise:
r = requests.get(f'https://lcr.churchofjesuschrist.org/records/member-profile/service/{member_id}',
params={'lang': "fra"},
headers={'Accept': "application/json",
'Cookie': self.cookie_jar,
'Referer': f"https://lcr.churchofjesuschrist.org/records/member-profile/{member_id}?lang=fra"})
'Referer': f"https://lcr.churchofjesuschrist.org/records/member-profile/{member_id}?lang=fra"},
cookies=self.cookie_jar)
r.raise_for_status()
return r.json()

View File

@ -45,7 +45,6 @@ import requests
from bdd_insee import BddInsee
from site_eglise import SiteEglise
import settings as param
def trouver_decedes(chemin_base_donnees, numeros_unites, chemin_repertoire_sortie, cookie_path=None):
@ -116,4 +115,10 @@ décédé{feminin} le {person.jour_deces:0>2}/{person.mois_deces:0>2}/{person.an
if __name__ == "__main__":
trouver_decedes(param.chemin_base_donnees, param.numeros_unites, param.chemin_repertoire_sortie, param.cookie)
parser = argparse.ArgumentParser(description='Recherche des personnes décédées dans les registres.')
parser.add_argument('chemin_base_donnees', type=str, help="chemin vers la base de données")
parser.add_argument('chemin_repertoire_sortie', type=str, help="chemin vers le répertoire de sortie")
parser.add_argument('numeros_unites', type=str, help="numéros des l'unités à traiter, séparés par des virgules (ex: 123,753,469)")
parser.add_argument('--cookie', '-c', type=str, help='chemin vers la base de donnée des cookies de Firefox')
args = parser.parse_args()
trouver_decedes(args.chemin_base_donnees, args.numeros_unites.split(','), args.chemin_repertoire_sortie, args.cookie)