Skip to content
GitLab
Explorer
Connexion
Navigation principale
Rechercher ou aller à…
Projet
Attrap
Gestion
Activité
Membres
Labels
Programmation
Tickets
Tableaux des tickets
Jalons
Wiki
Code
Requêtes de fusion
Dépôt
Branches
Validations
Étiquettes
Graphe du dépôt
Comparer les révisions
Compilation
Pipelines
Jobs
Planifications de pipeline
Artéfacts
Déploiement
Releases
Registre de paquets
Registre de conteneurs
Opération
Modules Terraform
Aide
Aide
Support
Documentation de GitLab
Comparer les forfaits GitLab
Forum de la communauté
Contribuer à GitLab
Donner votre avis
Conditions générales et politique de confidentialité
Raccourcis clavier
?
Extraits de code
Groupes
Projets
Afficher davantage de fils d'Ariane
ketsapiwiq
Attrap
Comparer les révisions
main to 4b633a3d2e44446e5086141ac57be55df355d186
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
ketsapiwiq/Attrap
Sélectionner le projet cible
No results found
4b633a3d2e44446e5086141ac57be55df355d186
Sélectionner une révision Git
Branches
14-configuration-tor-speciale-pour-attrap
Paris
ajout-pref2b
gitignore-lib64
jura
main
pref45
pref971
8 résultats
Échanger
Cible
la-quadrature-du-net/Attrap
Sélectionner le projet cible
skhwiz/Attrap
la-quadrature-du-net/Attrap
mverdeil/Attrap
ketsapiwiq/Attrap
Guinness/Attrap
precambrien/Attrap
kr1p/attrap-pref-12
foggyfrog/Attrap
astroidgritty/attrap-pref-84
Joseki/Attrap
davinov/Attrap
olpo/Attrap
kr1p/attrap-pi
kr1p/attrap-pref-46
maettellite/attrap-pref-01
m242/Attrap
multi/Attrap
17 résultats
main
Sélectionner une révision Git
Branches
main
pref19
2 résultats
Afficher les modifications
Uniquement les modifications entrantes de la source
Inclure les modifications apportées à la cible depuis la création de la source
Comparer
Validations sur la source (1)
Draft Paris
· 4b633a3d
Luc Pellissier
a rédigé
10 months ago
4b633a3d
Masquer les modifications d'espaces
En ligne
Côte à côte
Affichage de
2 fichiers modifiés
Attrap_pref75.py
+104
-0
104 ajouts, 0 suppression
Attrap_pref75.py
cli.py
+1
-0
1 ajout, 0 suppression
cli.py
avec
105 ajouts
et
0 suppression
Attrap_pref75.py
0 → 100644
Voir le fichier @
4b633a3d
import
os
import
datetime
from
bs4
import
BeautifulSoup
from
urllib.parse
import
unquote
from
Attrap
import
Attrap
class
Attrap_pref75
(
Attrap
):
# Les RAA de Paris sont sur le site de la préfecture de région
# Île-de-France. On ne prend en compte que les RAA départementaux.Tant qu'à
# y être, on prend les RAA du département et de la région.
# Config
__HOST
=
'
https://www.prefectures-regions.gouv.fr
'
__RAA_PAGE
=
{
'
2024
'
:
f
'
{
__HOST
}
/ile-de-france/ile-de-france/ile-de-france/Documents-publications/Recueil-des-actes-administratifs/Raa-du-departement-de-Paris-2024
'
,
'
2023
'
:
f
'
{
__HOST
}
/ile-de-france/ile-de-france/ile-de-france/Documents-publications/Recueil-des-actes-administratifs/Raa-du-departement-de-Paris-2023
'
,
'
2022
'
:
f
'
{
__HOST
}
/ile-de-france/ile-de-france/ile-de-france/Documents-publications/Recueil-des-actes-administratifs/Raa-du-departement-de-Paris-2022
'
,
'
2021
'
:
f
'
{
__HOST
}
/ile-de-france/ile-de-france/ile-de-france/Documents-publications/Recueil-des-actes-administratifs/Raa-du-departement-de-Paris-2021
'
,
'
2020
'
:
f
'
{
__HOST
}
/ile-de-france/ile-de-france/ile-de-france/Documents-publications/Recueil-des-actes-administratifs/Raa-du-departement-de-Paris-2020
'
,
'
2019
'
:
f
'
{
__HOST
}
/ile-de-france/ile-de-france/ile-de-france/Documents-publications/Recueil-des-actes-administratifs/Raa-du-departement-de-Paris-2019
'
,
'
2018
'
:
f
'
{
__HOST
}
/ile-de-france/ile-de-france/ile-de-france/Documents-publications/Recueil-des-actes-administratifs/Raa-du-departement-de-Paris-2018
'
}
__USER_AGENT
=
'
Mozilla/5.0 (X11; Linux x86_64; rv:109.0) Gecko/20100101 Firefox/115.0
'
full_name
=
'
Préfecture de Paris
'
short_code
=
'
pref75
'
def
__init__
(
self
,
data_dir
):
super
().
__init__
(
data_dir
,
self
.
__USER_AGENT
)
self
.
enable_tor
(
10
)
def
get_raa
(
self
,
keywords
):
year_pages_to_parse
=
[]
# Les RAA de Paris et de l'Île-de-France sont éparpillés sur des sous-pages par mois.
# Donc on parse la page principale à la recherche des sous-pages.
if
self
.
not_before
.
year
<=
2024
:
year_pages_to_parse
.
append
(
self
.
__RAA_PAGE
[
'
2024
'
])
if
self
.
not_before
.
year
<=
2023
:
year_pages_to_parse
.
append
(
self
.
__RAA_PAGE
[
'
2023
'
])
if
self
.
not_before
.
year
<=
2022
:
year_pages_to_parse
.
append
(
self
.
__RAA_PAGE
[
'
2022
'
])
if
self
.
not_before
.
year
<=
2021
:
year_pages_to_parse
.
append
(
self
.
__RAA_PAGE
[
'
2021
'
])
if
self
.
not_before
.
year
<=
2020
:
year_pages_to_parse
.
append
(
self
.
__RAA_PAGE
[
'
2020
'
])
if
self
.
not_before
.
year
<=
2019
:
year_pages_to_parse
.
append
(
self
.
__RAA_PAGE
[
'
2019
'
])
print
(
year_pages_to_parse
)
pages_to_parse
=
[]
for
year_page
in
year_pages_to_parse
:
page_content
=
self
.
get_page
(
year_page
,
'
get
'
).
content
# print(page_content)
month_pages
=
self
.
get_sub_pages
(
page_content
,
'
ol li a
'
,
self
.
__HOST
,
False
)[::
-
1
]
print
(
month_pages
)
for
month_page
in
month_pages
:
pages_to_parse
.
append
(
month_page
[
'
url
'
])
print
(
pages_to_parse
)
elements
=
[]
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
'
)
# Pour chaque balise a, on regarde si c'est un PDF, et si oui on le parse
for
a
in
soup
.
select
(
'
main div.container.main-container div.col-main article.article div.texte div a.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
'
)
guessed
=
Attrap
.
guess_date
(
a
.
get
(
'
href
'
),
"
([0-9]+.[0-9]+.[0-9]+)
"
)
"
([0-9]+.[0-9]+.[0-9]+)
"
)
print
(
guessed
)
date
=
datetime
.
datetime
.
strptime
(
guessed
,
'
%d.%m.%Y
'
)
raa
=
Attrap
.
RAA
(
url
,
date
,
name
)
elements
.
append
(
raa
)
return
elements
Ce diff est replié.
Cliquez pour l'agrandir.
cli.py
Voir le fichier @
4b633a3d
...
@@ -59,6 +59,7 @@ available_administrations = [
...
@@ -59,6 +59,7 @@ available_administrations = [
'
pref65
'
,
'
pref65
'
,
'
pref66
'
,
'
pref66
'
,
'
pref69
'
,
'
pref69
'
,
'
pref75
'
,
'
pref80
'
,
'
pref80
'
,
'
pref81
'
,
'
pref81
'
,
'
pref83
'
,
'
pref83
'
,
...
...
Ce diff est replié.
Cliquez pour l'agrandir.