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 conteneur
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
La Quadrature du Net
Attrap
Requêtes de fusion
!12
Draft: Paris
Code
Examiner les modifications
Extraire la branche
Télécharger
Correctifs
Diff brut
Fermé
Draft: Paris
Paris
into
main
Vue d'ensemble
4
Validations
5
Pipelines
0
Modifications
2
Fermé
quelu
requested to merge
Paris
into
main
il y a 9 mois
Vue d'ensemble
4
Validations
5
Pipelines
0
Modifications
2
Étendre
Ajout de la préfecture du département Paris
0
0
Rapports de requête de fusion
Affichage du commit
b5314cc5
Précédent
Suivant
Afficher la dernière version
2 fichiers
+
105
−
0
En ligne
Comparer les modifications
Côte à côte
En ligne
Afficher les modifications des espaces
Afficher un fichier à la fois
Fichiers
2
Rechercher (par ex. *.vue) (Ctrl+P)
b5314cc5
Draft Paris
· b5314cc5
Luc Pellissier
rédigé
il y a 9 mois
Attrap_pref75.py
0 → 100644
+
107
−
0
Options
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
'
).
get_text
()
quasidate
=
a
.
get
(
'
href
'
)
guessed
=
Attrap
.
guess_date
(
quasidate
,
"
([0-9]+\.[0-9]+\.[0-9]+)
"
)
if
(
guessed
==
datetime
.
datetime
(
9999
,
1
,
1
,
0
,
0
)):
guessed
=
Attrap
.
guess_date
(
quasidate
,
"
([0-9]+-[0-9]+-[0-9]+)
"
)
if
(
guessed
==
datetime
.
datetime
(
9999
,
1
,
1
,
0
,
0
)):
guessed
=
Attrap
.
guess_date
(
quasidate
,
"
75-([0-9]*)
"
)
date
=
guessed
raa
=
Attrap
.
RAA
(
url
,
date
,
name
)
elements
.
append
(
raa
)
return
elements
Chargement en cours