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 (3)
__pycache__/
bin/
lib/
lib64
data/
pyvenv.cfg
output_*.log
......@@ -218,6 +218,11 @@ test_pref93:
PREF: "pref93"
extends: .default_pref
test_pref94:
variables:
PREF: "pref94"
extends: .default_pref
test_pref976:
variables:
PREF: "pref976"
......
import os
import datetime
from bs4 import BeautifulSoup
from urllib.parse import unquote
from Attrap import Attrap
class Attrap_pref73(Attrap):
# Config
__HOST = 'https://www.savoie.gouv.fr'
__RAA_PAGE = {
'2024': f'{__HOST}/Publications/Recueils-hebdomadaires-et-speciaux-des-actes-administratifs/2024',
'2023': f'{__HOST}/Publications/Recueils-hebdomadaires-et-speciaux-des-actes-administratifs/2023',
'2022': f'{__HOST}/Publications/Recueils-hebdomadaires-et-speciaux-des-actes-administratifs/2022',
'2021': f'{__HOST}/Publications/Recueils-hebdomadaires-et-speciaux-des-actes-administratifs/2021',
'2020': f'{__HOST}/Publications/Recueils-hebdomadaires-et-speciaux-des-actes-administratifs/2020',
'2019': f'{__HOST}/Publications/Recueils-hebdomadaires-et-speciaux-des-actes-administratifs/2019',
}
__USER_AGENT = 'Mozilla/5.0 (X11; Linux x86_64; rv:109.0) Gecko/20100101 Firefox/115.0'
full_name = 'Préfecture de la Savoie'
short_code = 'pref73'
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'])
# On parse les pages contenant des RAA
elements = []
print(pages_to_parse)
for page in pages_to_parse:
page_content = self.get_page(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 balise a
for a in soup.select('a.fr-link.fr-link--download'):
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.find('span').previous_sibling.replace(
'Télécharger ', '').strip()
date = datetime.datetime.strptime(
a.find('span').get_text().split(' - ')[-1].strip(), '%d/%m/%Y')
raa = Attrap.RAA(url, date, name)
elements.append(raa)
return elements
import os
import datetime
from bs4 import BeautifulSoup
from urllib.parse import unquote
import logging
from Attrap import Attrap
class Attrap_pref94(Attrap):
# Config
__HOST = 'https://www.val-de-marne.gouv.fr'
__RAA_PAGE = f'{__HOST}/Publications/Publications-legales/RAA-Recueil-des-actes-administratifs'
__USER_AGENT = 'Mozilla/5.0 (X11; Linux x86_64; rv:109.0) Gecko/20100101 Firefox/115.0'
full_name = 'Préfecture du Val-de-Marne'
short_code = 'pref94'
def __init__(self, data_dir):
super().__init__(data_dir, self.__USER_AGENT)
self.enable_tor(10)
def get_raa(self, keywords):
elements = []
page_content = self.get_page(self.__RAA_PAGE, 'get').content
for sub_page 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(sub_page['name'], '([0-9]{4})$').year >= self.not_before.year:
sub_page_content = self.get_page(sub_page['url'], 'get').content
for element in self.get_raa_elements(sub_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')
# Pour chaque balise a, on regarde si c'est un PDF, et si oui on le
# parse
for a in soup.select('a.fr-link.fr-link--download'):
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.find('span').previous_sibling.replace('Télécharger ', '').strip()
date = datetime.datetime.strptime(a.find('span').get_text().split(' - ')[-1].strip(), '%d/%m/%Y')
raa = Attrap.RAA(url, date, name)
elements.append(raa)
return elements
......@@ -49,6 +49,8 @@ pref87:
bin/python3 cli.py pref87
pref93:
bin/python3 cli.py pref93
pref94:
bin/python3 cli.py pref94
pref976:
bin/python3 cli.py pref976
lint:
......
......@@ -86,6 +86,7 @@ Les options suivantes peuvent être précisées, par un paramètre si l'utilitai
- Préfecture du Var (identifiant : `pref83`)
- Préfecture de la Haute-Vienne (identifiant : `pref87`)
- Préfecture de Seine-Saint-Denis (identifiant : `pref93`)
- Préfecture du Val-de-Marne (identifiant : `pref94`)
- Préfecture de Mayotte (identifiant : `pref976`)
## Contributions
......
......@@ -59,11 +59,13 @@ available_administrations = [
'pref65',
'pref66',
'pref69',
'pref73',
'pref80',
'pref81',
'pref83',
'pref87',
'pref93',
'pref94',
'pref976'
]
......