diff --git a/Attrap_prefdpt.py b/Attrap_prefdpt.py
index 2578ada8f205dd594e91f9a1bb637f8e8b26ec8c..337b46508f827a1bcb77380eddd0185381caca6b 100644
--- a/Attrap_prefdpt.py
+++ b/Attrap_prefdpt.py
@@ -42,6 +42,7 @@ class Attrap_prefdpt(Attrap):
 
     # Liste des widgets à analyser (sera remplie au moment de l'initialisation, mais peut être surchargée par la classe de préfecture de département)
     widgets = []
+    select_widgets = []
 
     # Est-ce qu'on inclue les widgets des cartes blanches et grises ? Par défaut oui, mais il peut être nécessaire de les désactiver sur certaines préfectures
     include_grey_card_widget = True
@@ -83,6 +84,16 @@ class Attrap_prefdpt(Attrap):
             else:
                 return self.regex.get(key, None)
 
+    class DptSelectWidget:
+        """Une classe représentant un menu déroulant sur le site d'une préfecture de département."""
+
+        def __init__(self, name, regex=None, css_path=None, follow_link_on_unrecognised_date=True, exclude=[]):
+            self.name = name
+            self.regex = regex
+            self.css_path = css_path
+            self.follow_link_on_unrecognised_date = follow_link_on_unrecognised_date
+            self.exclude = exclude
+
     def __init__(self, data_dir):
         """Une classe générique permettant d'analyser les préfectures de département en fonction de certains paramètres."""
 
@@ -125,7 +136,8 @@ class Attrap_prefdpt(Attrap):
         while not self.page_urls_to_parse == []:
             page_url = self.page_urls_to_parse[-1]
             page_content = self.get_page(page_url, 'get').content  # On récupère le HTML de la page
-            self.parse_widgets(page_content)  # On parse les cartes blanches
+            self.parse_widgets(page_content)  # On parse les cartes
+            self.parse_select_widgets(page_url, page_content)  # On parse les menus déroulants
             for element in self.get_raa_elements(page_content):  # On cherche les RAA
                 self.elements.append(element)
             self.page_urls_to_parse.remove(page_url)  # On supprime la page de la liste de celles à parser
@@ -134,7 +146,7 @@ class Attrap_prefdpt(Attrap):
         self.mailer()
 
     def parse_widgets(self, page_content):
-        # Pour chaque widget paramétré, on le cherche sur la page
+        # Pour chaque widget paramétré qui n'est pas de type select, on le cherche sur la page
         for widget in self.widgets:
             cards = []
             # Si n'appelle pas la même fonction le widget a prévu un pager ou non
@@ -191,6 +203,35 @@ class Attrap_prefdpt(Attrap):
                         if date_is_correct or (date.year == 9999 and widget.follow_link_on_unrecognised_date):
                             self.page_urls_to_parse.append(card['url'])
 
+    def parse_select_widgets(self, page_url, page_content):
+        for select_widget in self.select_widgets:
+            # Les widgets select fonctionnent différemment : chaque valeur option doit être testée pour trouver une date, et si la date correspond
+            # à la date recherchée la requête POST est envoyée, puis le résultat est analysé par get_raa_elements()
+
+            # On charge le parser
+            soup = BeautifulSoup(page_content, 'html.parser')
+
+            # On récupère les select
+            for select in soup.select(select_widget.css_path):
+                # On récupère les option de chaque select
+                for option in select.find_all('option'):
+                    if not option['value'] == "" and option['title'].strip() not in select_widget.exclude:
+                        # On estime la date à partir du nom de fichier
+                        date = Attrap.guess_date(option['title'].strip(), select_widget.regex)
+
+                        # Si la date estimée correspond à la plage d'analyse ou si follow_link_on_unrecognised_date est à True,
+                        # on demande au serveur les détails du RAA
+                        if (date.year < 9999 and date >= self.not_before) or (date.year == 9999 and select_widget.follow_link_on_unrecognised_date):
+                            page_content = self.get_page(
+                                page_url,
+                                'post',
+                                {
+                                    select['id']: option['value']
+                                }
+                            ).content
+                            for element in self.get_raa_elements(page_content):
+                                self.elements.append(element)
+
     def get_raa_elements(self, page_content):
         elements = []
         # On charge le parser