diff --git a/RAAspotter.py b/RAAspotter.py
index e3132ac0b71facfc4d62870083eb617887640c2b..e58e3957c50a8a7ffed9a8a0ca843550f71be023 100644
--- a/RAAspotter.py
+++ b/RAAspotter.py
@@ -41,10 +41,9 @@ class RAAspotter:
         self.sha256 = hashlib.sha256(self.filename.encode('utf-8')).hexdigest()
       return self.sha256
 
-  def __init__(self, data_dir, user_agent=""):
+  def __init__(self, data_dir):
     logger.debug('Initialisation de RAAspotter')
 
-    self.user_agent       = user_agent
     self.session          = requests.Session()
     self.data_dir         = data_dir
     self.found            = False
diff --git a/RAAspotter_ppparis.py b/RAAspotter_ppparis.py
index 4a791c3aef5040832a2dc2f58d3a67432c9ed2f7..73cc41178411e86968e9e490598e121ba9b35554 100644
--- a/RAAspotter_ppparis.py
+++ b/RAAspotter_ppparis.py
@@ -5,7 +5,24 @@ from RAAspotter import RAAspotter
 
 class RAAspotter_ppparis(RAAspotter):
 
-  def get_raa(self, page_content):
+  # Config
+  __RAA_PAGE     = 'https://www.prefecturedepolice.interieur.gouv.fr/actualites-et-presse/arretes/accueil-arretes'
+  __WAIT_ELEMENT = 'block-decree-list-block'
+  __USER_AGENT   = 'Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/122.0.0.0 Safari/537.36'
+
+  def __init__(self, data_dir):
+    super().__init__(data_dir)
+    self.user_agent = self.__USER_AGENT
+
+  def get_raa(self, keywords):
+    self.print_output('RAAspotter_ppparis')
+    self.print_output(f'Termes recherchés: {keywords}')
+
+    page_content = self.get_session()
+    raa_elements = self.get_raa_elements(page_content)
+    self.parse_raa(raa_elements, keywords.split(','))
+
+  def get_raa_elements(self, page_content):
     elements = []
     # On charge le parser
     soup = BeautifulSoup(page_content, 'html.parser')
@@ -25,4 +42,7 @@ class RAAspotter_ppparis(RAAspotter):
 
         raa = RAAspotter.RAA(url, date, name, filename)
         elements.append(raa)
-    return elements
\ No newline at end of file
+    return elements
+
+  def get_session(self):
+    return super().get_session(self.__RAA_PAGE, self.__WAIT_ELEMENT)
diff --git a/ppparis.py b/ppparis.py
index f85a7b258dbc001fea57a701d0a8962dd16e6282..945b8533511f13d0eead89453ce0592f278daf76 100755
--- a/ppparis.py
+++ b/ppparis.py
@@ -6,8 +6,6 @@ from RAAspotter import RAAspotter
 from RAAspotter_ppparis import RAAspotter_ppparis
 
 # Config
-__RAA_PAGE = 'https://www.prefecturedepolice.interieur.gouv.fr/actualites-et-presse/arretes/accueil-arretes'
-__USER_AGENT = 'Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/122.0.0.0 Safari/537.36'
 __KEYWORDS = os.getenv('KEYWORDS') or 'vidéoprotection,caméras,captation,aéronef'
 __DATA_DIR = os.path.dirname(os.path.abspath(__file__))+'/data/ppparis/'
 __SMTP_HOSTNAME = os.getenv('SMTP_HOSTNAME') or 'localhost'
@@ -79,16 +77,8 @@ if args.email_to:
 # On crée le dossier de téléchargement
 os.makedirs(__DATA_DIR, exist_ok=True)
 
-raa_spotter = RAAspotter_ppparis(__DATA_DIR, __USER_AGENT)
-
-raa_spotter.print_output('RAAspotter_ppparis')
-raa_spotter.print_output(f'Termes recherchés: {__KEYWORDS}')
-
-page_content = raa_spotter.get_session(__RAA_PAGE, "block-decree-list-block")
-
-raa_elements = raa_spotter.get_raa(page_content)
-
-raa_spotter.parse_raa(raa_elements, __KEYWORDS.split(','))
+raa_spotter = RAAspotter_ppparis(__DATA_DIR)
+raa_spotter.get_raa(__KEYWORDS)
 
 if raa_spotter.found == True and __SMTP_HOSTNAME and __SMTP_USERNAME and __SMTP_PASSWORD and __SMTP_PORT and __EMAIL_TO and __EMAIL_FROM:
   output = open(raa_spotter.output_file_path)