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

pref39: ajout de la préfecture du Jura


Closes !16

Co-authored-by: default avatarHadrien <ketsapiwiq@protonmail.com>
Co-authored-by: default avatarBastien Le Querrec <blq@laquadrature.net>
parent a23de3ba
Aucune branche associée trouvée
Aucune étiquette associée trouvée
Aucune requête de fusion associée trouvée
......@@ -169,6 +169,11 @@ test_pref38:
PREF: "pref38"
extends: .default_pref
test_pref39:
variables:
PREF: "pref39"
extends: .default_pref
test_pref42:
variables:
PREF: "pref42"
......
import os
import datetime
from bs4 import BeautifulSoup
from urllib.parse import unquote
from Attrap import Attrap
class Attrap_pref39(Attrap):
# Config
__HOST = "https://www.jura.gouv.fr"
__RAA_PAGE = f'{__HOST}/Publications/Publications-legales/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 du Jura"
short_code = "pref39"
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
)
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 = 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 pref92 pref93 pref94 pref976 prefIdf
make: ppparis pref2b pref03 pref04 pref05 pref06 pref09 pref10 pref13 pref25 pref31 pref33 pref34 pref35 pref38 pref39 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:
......@@ -29,6 +29,8 @@ pref35:
bin/python3 cli.py pref35
pref38:
bin/python3 cli.py pref38
pref39:
bin/python3 cli.py pref39
pref42:
bin/python3 cli.py pref42
pref44:
......
......@@ -71,6 +71,7 @@ Vous pouvez également activer le safe mode en spécifiant la variable d'environ
- Préfecture de l'Hérault (identifiant : `pref34`)
- Préfecture d'Ille-et-Vilaine (identifiant : `pref35`)
- Préfecture de l'Isère (identifiant : `pref38`)
- Préfecture du Jura (identifiant : `pref39`)
- Préfecture de la Loire (identifiant : `pref42`)
- Préfecture de la Loire-Atlantique (identifiant : `pref44`)
- Préfecture du Nord (identifiant : `pref59`)
......
......@@ -59,6 +59,7 @@ available_administrations = [
'pref34',
'pref35',
'pref38',
'pref39',
'pref42',
'pref44',
'pref59',
......
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