diff --git a/.gitlab-ci.yml b/.gitlab-ci.yml
index 3f2c4f9e1b24853e0cf89fa65f9e8ee56435f43b..66ba72786a1bc4805113100c8733696da7261b0a 100644
--- a/.gitlab-ci.yml
+++ b/.gitlab-ci.yml
@@ -232,3 +232,8 @@ test_pref976:
   variables:
     PREF: "pref976"
   extends: .default_pref
+
+test_pref971:
+  variables:
+    PREF: "pref971"
+  extends: .default_pref
diff --git a/Attrap_pref971.py b/Attrap_pref971.py
new file mode 100644
index 0000000000000000000000000000000000000000..556765f4e34e959c99e02e0f32869a05504a1cb5
--- /dev/null
+++ b/Attrap_pref971.py
@@ -0,0 +1,127 @@
+import os
+import datetime
+
+from bs4 import BeautifulSoup
+from urllib.parse import unquote
+
+from Attrap import Attrap
+
+import locale
+
+locale.setlocale(locale.LC_TIME, 'fr_FR.UTF-8')
+
+
+# https://www.guadeloupe.gouv.fr/Publications/Le-Recueil-des-actes-administratifs/2021/Decembre
+
+
+class Attrap_pref971(Attrap):
+    months_fr = [
+        "Janvier",
+        "Fevrier",
+        "Mars",
+        "Avril",
+        "Mai",
+        "Juin",
+        "Juillet",
+        "Aout",
+        "Septembre",
+        "Octobre",
+        "Novembre",
+        "Decembre",
+    ]
+
+    # Config
+    __HOST = "https://www.guadeloupe.gouv.fr"
+    __RAA_PAGE = {
+        "2015": [],
+        "2016": [],
+        "2017": [],
+        "2018": [],
+        "2019": [],
+        "2020": [],
+        "2021": [],
+        "2022": [],
+        "2023": [],
+        "2024": [],
+    }
+    for year in range(2015, 2024):
+        for month in range(1, 12):
+            __RAA_PAGE[str(year)].append(
+                f"{__HOST}/Publications/Le-Recueil-des-actes-administratifs/{year}/{months_fr[month]}"
+            )
+    __USER_AGENT = (
+        "Mozilla/5.0 (X11; Linux x86_64; rv:109.0) Gecko/20100101 Firefox/115.0"
+    )
+    full_name = "Préfecture de la Guadeloupe"
+    short_code = "pref971"
+
+    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 = []
+        if self.not_before.year <= 2024:
+            for year_page in self.__RAA_PAGE["2024"]:
+                year_pages_to_parse.append(year_page)
+        if self.not_before.year <= 2023:
+            for year_page in self.__RAA_PAGE["2023"]:
+                year_pages_to_parse.append(year_page)
+        if self.not_before.year <= 2022:
+            for year_page in self.__RAA_PAGE["2022"]:
+                year_pages_to_parse.append(year_page)
+        if self.not_before.year <= 2021:
+            for year_page in self.__RAA_PAGE["2021"]:
+                year_pages_to_parse.append(year_page)
+        if self.not_before.year <= 2020:
+            for year_page in self.__RAA_PAGE["2020"]:
+                year_pages_to_parse.append(year_page)
+        if self.not_before.year <= 2019:
+            for year_page in self.__RAA_PAGE["2019"]:
+                year_pages_to_parse.append(year_page)
+        if self.not_before.year <= 2018:
+            for year_page in self.__RAA_PAGE["2018"]:
+                year_pages_to_parse.append(year_page)
+        if self.not_before.year <= 2017:
+            for year_page in self.__RAA_PAGE["2017"]:
+                year_pages_to_parse.append(year_page)
+        if self.not_before.year <= 2016:
+            for year_page in self.__RAA_PAGE["2016"]:
+                year_pages_to_parse.append(year_page)
+        if self.not_before.year <= 2015:
+            for year_page in self.__RAA_PAGE["2015"]:
+                year_pages_to_parse.append(year_page)
+
+        # On parse les pages contenant des RAA
+        elements = []
+        for year in self.__RAA_PAGE:
+            for page in self.__RAA_PAGE[year]:
+                page_content = self.get_page(page, "get").content
+                for raa in self.get_raa_elements(page_content):
+                    elements.append(raa)
+
+        self.parse_raa(elements, keywords)
+        self.mailer()
+
+    def get_raa_elements(self, page_content):
+        elements = []
+        # On charge le parser
+        soup = BeautifulSoup(page_content, "html.parser")
+
+        # On récupère chaque balise a
+        for a in soup.select("a.fr-link.fr-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.get_text()
+                date = datetime.datetime.strptime(
+                    name.split("publié le ")[-1].strip().split('\n')[0], "%d %B %Y"
+                )
+
+                raa = Attrap.RAA(url, date, name)
+                elements.append(raa)
+        return elements
diff --git a/Makefile b/Makefile
index 8601dd75cfa9e7eb1a91ef2e259b5e6bb7ce4f14..7af30cefe2da1303eca62193889ad52c24d7e777 100644
--- a/Makefile
+++ b/Makefile
@@ -53,6 +53,8 @@ pref93:
 	bin/python3 cli.py pref93
 pref94:
 	bin/python3 cli.py pref94
+pref971:
+	bin/python3 cli.py pref971
 pref976:
 	bin/python3 cli.py pref976
 lint:
diff --git a/cli.py b/cli.py
index e40a01f979807e56c32b30bc85a4b18fe509a155..ea8dec83dd5fce53efcb89f3fc61de7d0c65bca5 100755
--- a/cli.py
+++ b/cli.py
@@ -52,6 +52,7 @@ available_administrations = [
     'pref38',
     'pref42',
     'pref44',
+    'pref45',
     'pref59',
     'pref62',
     'pref63',
@@ -66,6 +67,7 @@ available_administrations = [
     'pref87',
     'pref93',
     'pref94',
+    'pref971',
     'pref976'
 ]