Skip to content
Extraits de code Groupes Projets
Valider a6f2c4a1 rédigé par dece's avatar dece Validation de Bastien Le Querrec
Parcourir les fichiers

pref92: ajout de la préfecture des Hauts-de-Seine


Closes !15

Co-authored-by: default avatarBastien Le Querrec <blq@laquadrature.net>
parent 6c943efd
Aucune branche associée trouvée
Aucune étiquette associée trouvée
Aucune requête de fusion associée trouvée
......@@ -244,6 +244,11 @@ test_pref87:
PREF: "pref87"
extends: .default_pref
test_pref92:
variables:
PREF: "pref92"
extends: .default_pref
test_pref93:
variables:
PREF: "pref93"
......
import datetime
import re
from bs4 import BeautifulSoup
from urllib.parse import unquote
from Attrap import Attrap
class Attrap_pref92(Attrap):
# Config
__HOST = 'https://www.hauts-de-seine.gouv.fr'
__RAA_PAGE = f'{__HOST}/Publications/Annonces-avis/Le-Recueil-des-actes-administratifs'
__USER_AGENT = 'Mozilla/5.0 (X11; Linux x86_64; rv:129.0) Gecko/20100101 Firefox/129.0'
full_name = 'Préfecture des Hauts-de-Seine'
short_code = 'pref92'
def __init__(self, data_dir):
super().__init__(data_dir, self.__USER_AGENT)
self.set_sleep_time(30)
def get_raa(self, keywords):
# On récupère les pages d'années
year_pages = []
page_content = self.get_page(self.__RAA_PAGE, 'get').content
for card in self.get_sub_pages(
page_content,
'div.fr-card__body div.fr-card__content h2.fr-card__title a',
self.__HOST,
False
):
if Attrap.guess_date(card['name'], '.* ([0-9]{4})').year >= self.not_before.year:
year_pages.append(card['url'])
# On récupère tous les RAA en suivant la navigation
elements = self.get_raa_with_pager(
year_pages,
'a.fr-pagination__link.fr-pagination__link--next',
self.__HOST,
filter_from_last_element_date=True
)
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')
# Pour chaque balise a, on regarde si c'est un PDF, et si oui on le parse
for a in soup.select('.fr-card__title a.fr-card__link.menu-item-link'):
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 = re.sub(r'([0-9]{4}-[0-9]{2}-[0-9]{2}) ', ' ', a.get_text()).strip()
date = datetime.datetime.strptime(a['title'].split(' - ')[-1].strip(), '%d/%m/%Y')
raa = Attrap.RAA(url, date, name)
elements.append(raa)
return elements
make: ppparis pref2b pref03 pref04 pref05 pref06 pref09 pref10 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 prefIdf
make: ppparis pref2b pref03 pref04 pref05 pref06 pref09 pref10 pref13 pref25 pref31 pref33 pref34 pref35 pref38 pref42 pref44 pref59 pref62 pref63 pref64 pref65 pref66 pref69 pref73 pref75 pref80 pref81 pref83 pref87 pref92 pref93 pref94 pref976 prefIdf
ppparis:
bin/python3 cli.py ppparis
pref2b:
......@@ -59,6 +59,8 @@ pref83:
bin/python3 cli.py pref83
pref87:
bin/python3 cli.py pref87
pref92:
bin/python3 cli.py pref92
pref93:
bin/python3 cli.py pref93
pref94:
......
......@@ -85,6 +85,7 @@ Vous pouvez également activer le safe mode en spécifiant la variable d'environ
- Préfecture du Tarn (identifiant : `pref81`)
- Préfecture du Var (identifiant : `pref83`)
- Préfecture de la Haute-Vienne (identifiant : `pref87`)
- Préfecture des Hauts-de-Seine (identifiant : `pref92`)
- Préfecture de Seine-Saint-Denis (identifiant : `pref93`)
- Préfecture du Val-de-Marne (identifiant : `pref94`)
- Préfecture de Mayotte (identifiant : `pref976`)
......
......@@ -74,6 +74,7 @@ available_administrations = [
'pref81',
'pref83',
'pref87',
'pref92',
'pref93',
'pref94',
'pref976',
......
0% Chargement en cours ou .
You are about to add 0 people to the discussion. Proceed with caution.
Terminez d'abord l'édition de ce message.
Veuillez vous inscrire ou vous pour commenter