Skip to content
Extraits de code Groupes Projets
Non vérifiée Valider 4546a4de rédigé par izissise's avatar izissise
Parcourir les fichiers

pref19: ajout de Corrèze

parent a049bd8b
Aucune branche associée trouvée
Aucune étiquette associée trouvée
Aucune requête de fusion associée trouvée
......@@ -124,6 +124,11 @@ test_pref13:
PREF: "pref13"
extends: .default_pref
test_pref19:
variables:
PREF: "pref19"
extends: .default_pref
test_pref25:
variables:
PREF: "pref25"
......
import os
import datetime
import logging
from bs4 import BeautifulSoup
from urllib.parse import unquote
from Attrap import Attrap
import json
logger = logging.getLogger(__name__)
class Attrap_pref19(Attrap):
# Config
__HOST = 'https://www.correze.gouv.fr'
__RAA_PAGE = f'{__HOST}/Publications/Recueil-des-actes-administratifs/Archives'
__USER_AGENT = 'Mozilla/5.0 (X11; Linux x86_64; rv:109.0) Gecko/20100101 Firefox/115.0'
full_name = 'Préfecture de la Corrèze'
short_code = 'pref19'
def __init__(self, data_dir):
super().__init__(data_dir, self.__USER_AGENT)
self.enable_tor(10)
def get_page_content(self, url):
return self.get_page(url, 'get').content
def get_raa(self, keywords):
# Recuperation des pages d'années
year_pages = self.get_sub_pages(
self.get_page_content(self.__RAA_PAGE),
'nav.fr-sidemenu div div ul li a',
self.__HOST,
recursive_until_pdf=False
)
year_pages = filter(
lambda page: page['year'] >= self.not_before.year,
map(lambda page: {
'url': page['url'],
'year': int(page['name'].split()[-1]),
}, year_pages)
)
# Pour chaque année, on recuperer les liens vers les pdfs
elements = filter(
lambda raa: raa.date >= self.not_before,
sum([
self.raas(page['year'], self.get_page_content(page['url']))
for page in year_pages
], [])
)
self.parse_raa(elements, keywords)
self.mailer()
def raas(self, year, year_content):
elements = []
# On charge le parser
soup = BeautifulSoup(year_content, 'html.parser')
# Tout les mois sont des h3
for a in soup.find_all('a'):
if a.get('href') and a['href'].endswith('.pdf'):
url = a['href']
if url.startswith('/'):
url = self.__HOST + url
url = unquote(url)
name = a.get_text().strip()
guessed_date = Attrap.guess_date(name, '.*([0-9]*(?:er)? [a-zéû]* [0-9]*).*')
date = datetime.datetime(year=year, month=guessed_date.month, day=guessed_date.day)
elements += [Attrap.RAA(url, date, name)]
return elements
def get_raa_elements(self, page_content):
raise Exception
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
make: ppparis pref04 pref05 pref06 pref09 pref13 pref19 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:
......@@ -11,6 +11,8 @@ pref09:
bin/python3 cli.py pref09
pref13:
bin/python3 cli.py pref13
pref19:
bin/python3 cli.py pref19
pref25:
bin/python3 cli.py pref25
pref31:
......
......@@ -68,6 +68,7 @@ Les options suivantes peuvent être précisées, par un paramètre si l'utilitai
- Préfecture des Alpes-Maritimes (identifiant : `pref06`)
- Préfecture de l'Ariège (identifiant : `pref09`)
- Préfecture des Bouches-du-Rhône (identifiant : `pref13`)
- Préfecture de la Corrèze (identifiant : `pref19`)
- Préfecture du Doubs (identifiant : `pref25`)
- Préfecture de la Haute-Garonne (identifiant : `pref31`)
- Préfecture de la Gironde (identifiant : `pref33`)
......
......@@ -45,6 +45,7 @@ available_administrations = [
'pref06',
'pref09',
'pref13',
'pref19',
'pref25',
'pref31',
'pref33',
......
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