diff --git a/ppparis.py b/ppparis.py
index 919adee60492e94f5d985375d176abdfd57a1e02..fcd1c5cdffe81bd7da5198192348670d2efaf479 100755
--- a/ppparis.py
+++ b/ppparis.py
@@ -6,8 +6,13 @@ from bs4 import BeautifulSoup
 import argparse
 from urllib.parse import unquote
 import logging
+import requests
 
 from selenium import webdriver
+from selenium.webdriver.common.by import By
+from selenium.webdriver.support.wait import WebDriverWait
+from selenium.webdriver.support import expected_conditions
+
 from pyvirtualdisplay import Display
 
 from pdfminer.high_level import extract_text
@@ -16,7 +21,6 @@ from pdfminer.high_level import extract_text
 __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'
 __headless_mode = True
-__WAITING_TIME = int(os.getenv('WAITING_TIME') or 5)
 __LIST = os.getenv('LIST') or 'vidéoprotection,caméras,captation,aéronef'
 __DATA_DIR = os.path.dirname(os.path.abspath(__file__))+'/data/ppparis/'
 
@@ -30,16 +34,24 @@ def print_output(data):
   f.write(data+"\n")
   f.close()
 
+# On charge l'URL avec la liste des fichiers
 def get_html(url):
   browser.get(url)
-  time.sleep(int(__WAITING_TIME*10))
-  page_content = browser.page_source
 
-  return page_content
+  # On attend que le navigateur ait passé les tests anti-robots et que le contenu s'affiche
+  element = WebDriverWait(browser, 120).until(expected_conditions.presence_of_element_located((By.ID, "block-decree-list-block")))
 
-def download_file(url):
-  browser.get(url)
-  time.sleep(__WAITING_TIME)
+  return browser.page_source
+
+def download_file(url, dest):
+  try:
+    os.makedirs(os.path.dirname(dest), exist_ok=True)
+    file = session.get(url)
+    f = open(dest,'wb')
+    f.write(file.content);
+    f.close()
+  except Exception as exc:
+    logging.warning(f'ATTENTION: Impossible de télécharger le fichier {url}: {exc}')
 
 def parse_pdf(filename, name, date):
   if not os.path.isfile(__DATA_DIR+filename):
@@ -64,7 +76,6 @@ def parse_pdf(filename, name, date):
 # Début du script
 parser = argparse.ArgumentParser(prog='ppparis.py', description='Télécharge les RAA de la Préfecture de police de Paris et recherche des mots-clés')
 parser.add_argument('-n', '--noheadless', action='store_true', help='ne lance pas le navigateur en mode headless (pratique pour débugguer ou en dehors d\'une CI)')
-parser.add_argument('-w', '--waiting-time', type=int, action='store', help='délai (en secondes) d\'attente de chargement d\'une page, la durée du premier chargement étant cette valeur multipliée par 10 (par défaut : 5)')
 parser.add_argument('-l', '--list', action='store', help='liste des termes recherchés, séparés par une virgule (par défaut : vidéoprotection,caméras,captation,aéronef)')
 parser.add_argument('-v', action='store_true', help='relève le niveau de verbosité à INFO')
 parser.add_argument('-vv', action='store_true', help='relève le niveau de verbosité à DEBUG')
@@ -82,11 +93,6 @@ if args.noheadless:
 if not __headless_mode:
   logging.debug('Mode noheadless')
 
-if args.waiting_time:
-  __WAITING_TIME = args.waiting_time
-
-logging.debug(f'WAITING_TIME: {__WAITING_TIME}')
-
 if args.list:
   __LIST = args.list
 
@@ -123,6 +129,17 @@ browser = webdriver.Chrome(options=webdriver_options)
 # Téléchargement des RAA
 page_content = get_html(__RAA_PAGE)
 
+# On récupère les cookies du navigateur pour les réutiliser lors du téléchargement des PDF
+session = requests.Session()
+for cookie in browser.get_cookies():
+  session.cookies.set(cookie['name'], cookie['value'])
+session.headers.update({'User-Agent': __USER_AGENT})
+
+# On arrête le navigateur
+browser.quit()
+if __headless_mode:
+  display.stop()
+
 # On charge le parser
 soup = BeautifulSoup(page_content, 'html.parser')
 
@@ -142,11 +159,7 @@ for a in soup.find_all('a', href=True):
     # Si le fichier n'a pas été téléchargé, on le télécharge et on le parse
     if not os.path.isfile(__DATA_DIR+filename):
       logging.info(f'Nouveau fichier : {name} ({date}). URL : {url}')
-      try:
-        download_file(url)
-      except Exception:
-        logging.warning('ATTENTION: Impossible de télécharger le fichier '+url)
-
+      download_file(url, __DATA_DIR+filename)
 
       cmd = ['ocrmypdf', '-l', 'eng+fra', '--output-type', 'pdfa', '--redo-ocr', __DATA_DIR+filename, __DATA_DIR+filename]
       logging.debug(f'Lancement de ocrmypdf: {cmd}')
@@ -157,8 +170,3 @@ for a in soup.find_all('a', href=True):
           logging.warning('ATTENTION : Impossible d\'OCRiser le document', exc.returncode, exc.output)
 
       parse_pdf(filename, name, date)
-
-# On arrête le navigateur
-browser.quit()
-if __headless_mode:
-  display.stop()
diff --git a/requirements.txt b/requirements.txt
index 3126eb6bc320b0c6cfece1c87431dd1d66019fb9..9f7e72e49d4f46f5fc2582627385805f267f854d 100644
--- a/requirements.txt
+++ b/requirements.txt
@@ -2,3 +2,4 @@ beautifulsoup4
 selenium
 pyvirtualdisplay
 pdfminer.six
+requests