Skip to content
Extraits de code Groupes Projets
Valider 92c5a264 rédigé par Bastien Le Querrec's avatar Bastien Le Querrec
Parcourir les fichiers

RAAspotter: ajoute une fonction pour estimer la date dans une chaine de caractères

parent 28ab9942
Aucune branche associée trouvée
Aucune étiquette associée trouvée
Aucune requête de fusion associée trouvée
......@@ -11,6 +11,8 @@ from selenium.webdriver.common.by import By
from selenium.webdriver.support.wait import WebDriverWait
from selenium.webdriver.support import expected_conditions
import dateparser
from bs4 import BeautifulSoup
from pyvirtualdisplay import Display
from pdfminer.high_level import extract_text
......@@ -406,3 +408,14 @@ class RAAspotter:
smtp.quit()
except Exception as exc:
logger.warning(f'Impossible d\'envoyer le courrier électronique : {exc}')
# Fonction qui essaie de deviner la date d'un RAA à partir de son nom.
# Utile pour limiter les requêtes lors de l'obtention des RAA à scanner.
def guess_date(string, regex):
guessed_date = datetime.datetime(9999, 1, 1)
try:
search = re.search(regex, string, re.IGNORECASE)
guessed_date = dateparser.parse(search.group(1))
except Exception as exc:
logger.warning(f"Impossible de deviner la date du terme {string} : {exc}")
return guessed_date
import os, sys, re
import datetime
import dateparser
import logging
from bs4 import BeautifulSoup
......@@ -63,14 +62,8 @@ class RAAspotter_pref38(RAAspotter):
# On analyse chaque résultat
for option in select_list.find_all('option'):
if not option['value'] == "":
guessed_date = datetime.datetime(9999, 1, 1)
try:
# Pour chaque RAA listé, on essaie de deviner sa date à partir de son nom, et si elle correspond à la plage
# demandée, on poursuit l'analyse
search = re.search('.* n°[ 0-9]* du ([0-9]*(?:er)? [a-zéû]* [0-9]*)', option['title'], re.IGNORECASE)
guessed_date = dateparser.parse(search.group(1))
except Exception as exc:
logger.warning(f"Impossible de deviner la date du RAA {option['title']} : {exc}")
# On estime la date à partir du nom de fichier
guessed_date = RAAspotter.guess_date(option['title'], '.* n°[ 0-9]* du ([0-9]*(?:er)? [a-zéû]* [0-9]*)')
# Si la date estimée correspond à la plage d'analyse, on demande au serveur les détails du RAA
if guessed_date >= self.not_before:
......
0% Chargement en cours ou .
You are about to add 0 people to the discussion. Proceed with caution.
Terminez d'abord l'édition de ce message.
Veuillez vous inscrire ou vous pour commenter