Skip to content
Extraits de code Groupes Projets

Comparer les révisions

Les modifications sont affichées comme si la révision source était fusionnée avec la révision cible. En savoir plus sur la comparaison des révisions.

Source

Sélectionner le projet cible
No results found

Cible

Sélectionner le projet cible
  • la-quadrature-du-net/Attrap
  • foggyfrog/Attrap
  • skhwiz/Attrap
  • precambrien/Attrap
  • ketsapiwiq/Attrap
  • Joseki/Attrap
  • kr1p/attrap-pref-12
  • kr1p/attrap-pref-46
  • kr1p/attrap-pi
  • Guinness/Attrap
  • astroidgritty/attrap-pref-84
  • davinov/Attrap
  • maettellite/attrap-pref-01
  • m242/Attrap
  • multi/Attrap
  • mverdeil/Attrap
  • olpo/Attrap
17 résultats
Afficher les modifications
Validations sur la source (7)
......@@ -148,6 +148,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 = {
"2024": f"{__HOST}/Publications/Publications-legales/Recueil-des-Actes-Administratifs/Annee-2024",
"2023": f"{__HOST}/Publications/Recueils-des-actes-administratifs/Recueil-des-actes-administratifs-2023",
"2022": f"{__HOST}/Publications/Publications-legales/Recueil-des-Actes-Administratifs/Annee-2022",
"2021": f"{__HOST}/Publications/Publications-legales/Recueil-des-Actes-Administratifs/Annee-2021",
"2020": f"{__HOST}/Publications/Publications-legales/Recueil-des-Actes-Administratifs/Annee-2020",
"2019": f"{__HOST}/Publications/Publications-legales/Recueil-des-Actes-Administratifs/Annee-2019",
"2018": f"{__HOST}/Publications/Publications-legales/Recueil-des-Actes-Administratifs/Annee-2018",
"2017": f"{__HOST}/Publications/Publications-legales/Recueil-des-Actes-Administratifs/Annee-2017",
"2016": f"{__HOST}/Publications/Publications-legales/Recueil-des-Actes-Administratifs/Annee-2016",
"2015": f"{__HOST}/Publications/Publications-legales/Recueil-des-Actes-Administratifs/Annee-2015",
"2011": f"{__HOST}/Publications/Publications-legales/Recueil-des-Actes-Administratifs/Annee-2011",
"2010": f"{__HOST}/Publications/Publications-legales/Recueil-des-Actes-Administratifs/Annee-2010",
"2009": f"{__HOST}/Publications/Publications-legales/Recueil-des-Actes-Administratifs/Annee-2009",
}
__USER_AGENT = "Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/122.0.0.0 Safari/537.36"
full_name = "Préfecture du Jura"
short_code = "pref39"
def __init__(self, data_dir):
super().__init__(data_dir, self.__USER_AGENT)
self.enable_tor(10)
def get_raa(self, keywords):
pages_to_parse = []
if self.not_before.year <= 2024:
pages_to_parse.append(self.__RAA_PAGE["2024"])
if self.not_before.year <= 2023:
pages_to_parse.append(self.__RAA_PAGE["2023"])
if self.not_before.year <= 2022:
pages_to_parse.append(self.__RAA_PAGE["2022"])
if self.not_before.year <= 2021:
pages_to_parse.append(self.__RAA_PAGE["2021"])
if self.not_before.year <= 2020:
pages_to_parse.append(self.__RAA_PAGE["2020"])
if self.not_before.year <= 2019:
pages_to_parse.append(self.__RAA_PAGE["2019"])
if self.not_before.year <= 2018:
pages_to_parse.append(self.__RAA_PAGE["2018"])
if self.not_before.year <= 2017:
pages_to_parse.append(self.__RAA_PAGE["2017"])
if self.not_before.year <= 2016:
pages_to_parse.append(self.__RAA_PAGE["2016"])
if self.not_before.year <= 2015:
pages_to_parse.append(self.__RAA_PAGE["2015"])
if self.not_before.year <= 2011:
pages_to_parse.append(self.__RAA_PAGE["2011"])
if self.not_before.year <= 2010:
pages_to_parse.append(self.__RAA_PAGE["2010"])
if self.not_before.year <= 2009:
pages_to_parse.append(self.__RAA_PAGE["2009"])
elements = []
for raa_page in pages_to_parse:
page_content = self.get_page(raa_page, "get").content
for element in self.get_raa_elements(page_content):
elements.append(element)
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 block de card
for block in soup.select(".fr-card__content"):
a = block.select("a.fr-card__link")[0]
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_str = block.select("p.fr-card__detail")[0].get_text().replace("Publié le ", "")
date = datetime.datetime.strptime(date_str, "%d/%m/%Y")
raa = Attrap.RAA(url, date, name)
elements.append(raa)
return elements
......@@ -73,6 +73,7 @@ Les options suivantes peuvent être précisées, par un paramètre si l'utilitai
- 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`)
......
......@@ -50,6 +50,7 @@ available_administrations = [
'pref34',
'pref35',
'pref38',
'pref39',
'pref42',
'pref44',
'pref59',
......