diff --git a/.gitlab-ci.yml b/.gitlab-ci.yml
index 4c9f7913ea585b92b5d734587db827f8f152cd4a..5ced3e066bfcbc075ab3925dfe421c80e99483d2 100644
--- a/.gitlab-ci.yml
+++ b/.gitlab-ci.yml
@@ -203,6 +203,11 @@ test_pref73:
     PREF: "pref73"
   extends: .default_pref
 
+test_pref75:
+  variables:
+    PREF: "pref75"
+  extends: .default_pref
+
 test_pref80:
   variables:
     PREF: "pref80"
diff --git a/Attrap_pref75.py b/Attrap_pref75.py
new file mode 100644
index 0000000000000000000000000000000000000000..709f89daf4cf22dbaa87b7a9ed5ad15a088f61e3
--- /dev/null
+++ b/Attrap_pref75.py
@@ -0,0 +1,99 @@
+import os
+import datetime
+
+from bs4 import BeautifulSoup
+from urllib.parse import unquote
+
+from Attrap import Attrap
+
+
+class Attrap_pref75(Attrap):
+
+    # Les RAA de Paris sont sur le site de la préfecture de région
+    # Île-de-France. On ne prend en compte que les RAA départementaux.
+
+    # Config
+    __HOST = 'https://www.prefectures-regions.gouv.fr'
+    __RAA_PAGE = {
+        '2024': f'{__HOST}/ile-de-france/ile-de-france/ile-de-france/Documents-publications/Recueil-des-actes-administratifs/Raa-du-departement-de-Paris-2024',
+        '2023': f'{__HOST}/ile-de-france/ile-de-france/ile-de-france/Documents-publications/Recueil-des-actes-administratifs/Raa-du-departement-de-Paris-2023',
+        '2022': f'{__HOST}/ile-de-france/ile-de-france/ile-de-france/Documents-publications/Recueil-des-actes-administratifs/Raa-du-departement-de-Paris-2022',
+        '2021': f'{__HOST}/ile-de-france/ile-de-france/ile-de-france/Documents-publications/Recueil-des-actes-administratifs/Raa-du-departement-de-Paris-2021',
+        '2020': f'{__HOST}/ile-de-france/ile-de-france/ile-de-france/Documents-publications/Recueil-des-actes-administratifs/Raa-du-departement-de-Paris-2020',
+        '2019': f'{__HOST}/ile-de-france/ile-de-france/ile-de-france/Documents-publications/Recueil-des-actes-administratifs/Raa-du-departement-de-Paris-2019',
+        '2018': f'{__HOST}/ile-de-france/ile-de-france/ile-de-france/Documents-publications/Recueil-des-actes-administratifs/Raa-du-departement-de-Paris-2018'
+    }
+    __USER_AGENT = 'Mozilla/5.0 (X11; Linux x86_64; rv:109.0) Gecko/20100101 Firefox/115.0'
+    full_name = 'Préfecture de Paris'
+    short_code = 'pref75'
+
+    def __init__(self, data_dir):
+        super().__init__(data_dir, self.__USER_AGENT)
+        self.enable_tor(10)
+
+    def get_raa(self, keywords):
+        year_pages_to_parse = []
+
+        # Les RAA de Paris sont éparpillés sur des sous-pages par mois.
+        # Donc on parse la page principale à la recherche des sous-pages.
+        if self.not_before.year <= 2024:
+            year_pages_to_parse.append(self.__RAA_PAGE['2024'])
+        if self.not_before.year <= 2023:
+            year_pages_to_parse.append(self.__RAA_PAGE['2023'])
+        if self.not_before.year <= 2022:
+            year_pages_to_parse.append(self.__RAA_PAGE['2022'])
+        if self.not_before.year <= 2021:
+            year_pages_to_parse.append(self.__RAA_PAGE['2021'])
+        if self.not_before.year <= 2020:
+            year_pages_to_parse.append(self.__RAA_PAGE['2020'])
+        if self.not_before.year <= 2019:
+            year_pages_to_parse.append(self.__RAA_PAGE['2019'])
+
+        pages_to_parse = []
+        for year_page in year_pages_to_parse:
+            page_content = self.get_page(year_page, 'get').content
+            year = BeautifulSoup(page_content, 'html.parser').select('div.breadcrumb div.container p span.active')[0].get_text().split('-')[-1].strip()
+            month_pages = self.get_sub_pages(
+                page_content,
+                'div.sommaire-bloc div.sommaire-content ol li a',
+                self.__HOST,
+                False
+            )[::-1]
+            for month_page in month_pages:
+                month_date = Attrap.guess_date(f'{month_page['name']} {year}', "(.*)").replace(day=1)
+                if month_date >= self.not_before.replace(day=1):
+                    pages_to_parse.append(month_page['url'])
+
+        elements = []
+        for page in pages_to_parse[::-1]:
+            page_content = self.get_page(page, 'get').content
+            for element in self.get_raa_elements(page_content):
+                elements.append(element)
+
+        self.parse_raa(elements[::-1], keywords)
+        self.mailer()
+
+    def get_raa_elements(self, page_content):
+        elements = []
+        # On charge le parser
+        soup = BeautifulSoup(page_content, 'html.parser')
+
+        # Pour chaque balise a, on regarde si c'est un PDF, et si oui on le parse
+        for a in soup.select('main div.container.main-container div.col-main article.article div.texte div a.link-download'):
+            if a.get('href') and a['href'].endswith('.pdf'):
+                if a['href'].startswith('/'):
+                    url = f"{self.__HOST}{a['href']}"
+                else:
+                    url = a['href']
+                url = unquote(url)
+                name = a.find('span').get_text().strip()
+                # On devine la date du RAA à partir du nom de fichier
+                guessed = Attrap.guess_date(name, '([0-9]{2}(?:-|\\.)[0-9]{2}(?:-|\\.)[0-9]{4})')
+                if (guessed == datetime.datetime(9999, 1, 1, 0, 0)):
+                    date = None
+                else:
+                    date = guessed
+
+                raa = Attrap.RAA(url, date, name)
+                elements.append(raa)
+        return elements
diff --git a/Makefile b/Makefile
index 56c154ca1959fdc502929df09f1a7a3055929d41..68f9a25a6da353fbb57a9b4d735eb9afb75f7c6c 100644
--- a/Makefile
+++ b/Makefile
@@ -1,4 +1,4 @@
-make: ppparis pref04 pref05 pref06 pref09 pref13 pref25 pref31 pref33 pref34 pref35 pref38 pref42 pref44 pref59 pref62 pref63 pref64 pref65 pref66 pref69 pref73 pref80 pref81 pref83 pref87 pref93 pref94 pref976
+make: ppparis pref04 pref05 pref06 pref09 pref13 pref25 pref31 pref33 pref34 pref35 pref38 pref42 pref44 pref59 pref62 pref63 pref64 pref65 pref66 pref69 pref73 pref75 pref80 pref81 pref83 pref87 pref93 pref94 pref976
 ppparis:
 	bin/python3 cli.py ppparis
 pref04:
@@ -43,6 +43,8 @@ pref69:
 	bin/python3 cli.py pref69
 pref73:
 	bin/python3 cli.py pref73
+pref75:
+	bin/python3 cli.py pref75
 pref80:
 	bin/python3 cli.py pref80
 pref81:
diff --git a/README.md b/README.md
index 895623f6fe16683deb2571f83c4b0dec9e50985c..adbbfb73029063d099a19e2fbff36a7bb69d1041 100644
--- a/README.md
+++ b/README.md
@@ -83,6 +83,7 @@ Les options suivantes peuvent être précisées, par un paramètre si l'utilitai
 - Préfecture des Pyrénées-Orientales (identifiant : `pref66`)
 - Préfecture du Rhône (identifiant : `pref69`)
 - Préfecture de la Savoie (identifiant : `pref73`)
+- Préfecture de Paris (identifiant : `pref75`)
 - Préfecture de la Somme (identifiant : `pref80`)
 - Préfecture du Tarn (identifiant : `pref81`)
 - Préfecture du Var (identifiant : `pref83`)
diff --git a/cli.py b/cli.py
index 8c1a1d8d021e46bbce3a82ee9114137e7ff1a168..c6f7041b875c67876f9a662f82b0467562e3859d 100755
--- a/cli.py
+++ b/cli.py
@@ -61,6 +61,7 @@ available_administrations = [
     'pref66',
     'pref69',
     'pref73',
+    'pref75',
     'pref80',
     'pref81',
     'pref83',