Skip to content
Extraits de code Groupes Projets
Valider 662ccf62 rédigé par Bastien Le Querrec's avatar Bastien Le Querrec
Parcourir les fichiers

RAAspotter: ajoute la possibilité de ne pas analyser les RAA anciens

parent 1b697127
Aucune branche associée trouvée
Aucune étiquette associée trouvée
Aucune requête de fusion associée trouvée
......@@ -3,6 +3,7 @@ import subprocess
import logging
import requests
import time
import datetime
from selenium import webdriver
from selenium.webdriver.common.by import By
......@@ -25,7 +26,7 @@ logger = logging.getLogger(__name__)
class RAAspotter:
class RAA:
url = ""
date = ""
date = datetime.datetime(1970, 1, 1)
name = ""
filename = ""
sha256 = ""
......@@ -56,6 +57,7 @@ class RAAspotter:
self.tor_enabled = False
self.tor_max_requests = 0
self.tor_requests = 0
self.not_before = datetime.datetime(1970, 1, 1)
self.update_user_agent(user_agent)
......@@ -230,8 +232,9 @@ class RAAspotter:
def parse_raa(self, elements, keywords):
for raa in elements:
# Si le fichier n'a pas déjà été parsé, on le télécharge et on le parse
if not os.path.isfile(f'{self.data_dir}{raa.get_sha256()}.txt'):
# Si le fichier n'a pas déjà été parsé et qu'il est postérieur à la date maximale d'analyse,
# on le télécharge et on le parse
if (raa.date > self.not_before) and (not os.path.isfile(f'{self.data_dir}{raa.get_sha256()}.txt')):
logger.info(f'Nouveau fichier : {raa.name} ({raa.date}). URL : {raa.url}')
self.download_file(raa)
self.ocr(raa, True)
......
import datetime
from bs4 import BeautifulSoup
from urllib.parse import unquote
......@@ -35,7 +37,7 @@ class RAAspotter_ppparis(RAAspotter):
url = a['href']
name = a.find('span').get_text()
date = a.find('div', class_="field--type-datetime").get_text()
date = datetime.datetime.strptime(a.find('div', class_="field--type-datetime").get_text().strip(), '%d/%m/%Y')
filename = unquote(url.split('/')[-1])
......
import os, sys
import datetime
from bs4 import BeautifulSoup
from urllib.parse import unquote
......@@ -44,7 +45,7 @@ class RAAspotter_pref13(RAAspotter):
url = a['href']
name = a.find('span').previous_sibling.replace('Télécharger ', '').strip()
date = a.find('span').get_text().split(' - ')[-1].strip()
date = datetime.datetime.strptime(a.find('span').get_text().split(' - ')[-1].strip(), '%d/%m/%Y')
filename = unquote(url.split('/')[-1])
raa = RAAspotter.RAA(url, date, name, filename)
......
import os, sys
import datetime
from bs4 import BeautifulSoup
from urllib.parse import unquote
......@@ -44,7 +45,7 @@ class RAAspotter_pref35(RAAspotter):
url = a['href']
name = a.find('span').previous_sibling.replace('Télécharger ', '').strip()
date = a.find('span').get_text().split(' - ')[-1].strip()
date = datetime.datetime.strptime(a.find('span').get_text().split(' - ')[-1].strip(), '%d/%m/%Y')
filename = unquote(url.split('/')[-1])
raa = RAAspotter.RAA(url, date, name, filename)
......
import os
import argparse
import logging
import datetime
from RAAspotter import RAAspotter
from RAAspotter_ppparis import RAAspotter_ppparis
......@@ -25,10 +26,15 @@ if os.getenv('SMTP_SSL'):
__SMTP_SSL = True
else:
__SMTP_SSL = False
if os.getenv('NOT_BEFORE'):
__NOT_BEFORE = datetime.datetime.strptime(os.getenv('NOT_BEFORE'), '%Y-%m-%d')
else:
__NOT_BEFORE = datetime.datetime(1970, 1, 1)
# Début du script
parser = argparse.ArgumentParser(prog='ppparis.py', description='Télécharge les RAA de la Préfecture de police de Paris et recherche des mots-clés')
parser.add_argument('-k', '--keywords', action='store', help='liste des termes recherchés, séparés par une virgule (par défaut : vidéoprotection,caméras,captation,aéronef)')
parser.add_argument('--not-before', action='store', help='n\'analyse pas les RAA datant d\'avant la date indiquée, au format YYYY-MM-DD (par défaut : analyse tous les RAA)')
parser.add_argument('--smtp-hostname', action='store', help='nom d\'hôte SMTP (par défaut : localhost)')
parser.add_argument('--smtp-username', action='store', help='nom d\'utilisateur SMTP (par défaut : vide)')
parser.add_argument('--smtp-password', action='store', help='mot de passe SMTP (par défaut : vide)')
......@@ -50,6 +56,9 @@ if args.vv or os.getenv('VVERBOSE'):
if args.keywords:
__KEYWORDS = args.keywords
if args.not_before:
__NOT_BEFORE = datetime.datetime.strptime(args.not_before, '%Y-%m-%d')
if args.smtp_hostname:
__SMTP_HOSTNAME = args.smtp_hostname
......@@ -78,6 +87,7 @@ if args.email_to:
os.makedirs(__DATA_DIR, exist_ok=True)
raa_spotter = RAAspotter_ppparis(__DATA_DIR)
raa_spotter.not_before = __NOT_BEFORE
raa_spotter.get_raa(__KEYWORDS)
if raa_spotter.found == True and __SMTP_HOSTNAME and __SMTP_USERNAME and __SMTP_PASSWORD and __SMTP_PORT and __EMAIL_TO and __EMAIL_FROM:
......
import os
import argparse
import logging
import datetime
from RAAspotter import RAAspotter
from RAAspotter_pref13 import RAAspotter_pref13
......@@ -25,10 +26,15 @@ if os.getenv('SMTP_SSL'):
__SMTP_SSL = True
else:
__SMTP_SSL = False
if os.getenv('NOT_BEFORE'):
__NOT_BEFORE = datetime.datetime.strptime(os.getenv('NOT_BEFORE'), '%Y-%m-%d')
else:
__NOT_BEFORE = datetime.datetime(1970, 1, 1)
# Début du script
parser = argparse.ArgumentParser(prog='pref13.py', description='Télécharge les RAA de la préfecture des Bouches-du-Rhône et recherche des mots-clés')
parser.add_argument('-k', '--keywords', action='store', help='liste des termes recherchés, séparés par une virgule (par défaut : vidéoprotection,caméras,captation,aéronef)')
parser.add_argument('--not-before', action='store', help='n\'analyse pas les RAA datant d\'avant la date indiquée, au format YYYY-MM-DD (par défaut : analyse tous les RAA)')
parser.add_argument('--smtp-hostname', action='store', help='nom d\'hôte SMTP (par défaut : localhost)')
parser.add_argument('--smtp-username', action='store', help='nom d\'utilisateur SMTP (par défaut : vide)')
parser.add_argument('--smtp-password', action='store', help='mot de passe SMTP (par défaut : vide)')
......@@ -50,6 +56,9 @@ if args.vv or os.getenv('VVERBOSE'):
if args.keywords:
__KEYWORDS = args.keywords
if args.not_before:
__NOT_BEFORE = datetime.datetime.strptime(args.not_before, '%Y-%m-%d')
if args.smtp_hostname:
__SMTP_HOSTNAME = args.smtp_hostname
......@@ -78,6 +87,7 @@ if args.email_to:
os.makedirs(__DATA_DIR, exist_ok=True)
raa_spotter = RAAspotter_pref13(__DATA_DIR)
raa_spotter.not_before = __NOT_BEFORE
raa_spotter.get_raa(__KEYWORDS)
if raa_spotter.found == True and __SMTP_HOSTNAME and __SMTP_USERNAME and __SMTP_PASSWORD and __SMTP_PORT and __EMAIL_TO and __EMAIL_FROM:
......
import os
import argparse
import logging
import datetime
from RAAspotter import RAAspotter
from RAAspotter_pref35 import RAAspotter_pref35
......@@ -25,10 +26,15 @@ if os.getenv('SMTP_SSL'):
__SMTP_SSL = True
else:
__SMTP_SSL = False
if os.getenv('NOT_BEFORE'):
__NOT_BEFORE = datetime.datetime.strptime(os.getenv('NOT_BEFORE'), '%Y-%m-%d')
else:
__NOT_BEFORE = datetime.datetime(1970, 1, 1)
# Début du script
parser = argparse.ArgumentParser(prog='pref35.py', description='Télécharge les RAA de la préfecture d\'Ille-et-Vilaine et recherche des mots-clés')
parser.add_argument('-k', '--keywords', action='store', help='liste des termes recherchés, séparés par une virgule (par défaut : vidéoprotection,caméras,captation,aéronef)')
parser.add_argument('--not-before', action='store', help='n\'analyse pas les RAA datant d\'avant la date indiquée, au format YYYY-MM-DD (par défaut : analyse tous les RAA)')
parser.add_argument('--smtp-hostname', action='store', help='nom d\'hôte SMTP (par défaut : localhost)')
parser.add_argument('--smtp-username', action='store', help='nom d\'utilisateur SMTP (par défaut : vide)')
parser.add_argument('--smtp-password', action='store', help='mot de passe SMTP (par défaut : vide)')
......@@ -50,6 +56,9 @@ if args.vv or os.getenv('VVERBOSE'):
if args.keywords:
__KEYWORDS = args.keywords
if args.not_before:
__NOT_BEFORE = datetime.datetime.strptime(args.not_before, '%Y-%m-%d')
if args.smtp_hostname:
__SMTP_HOSTNAME = args.smtp_hostname
......@@ -78,6 +87,7 @@ if args.email_to:
os.makedirs(__DATA_DIR, exist_ok=True)
raa_spotter = RAAspotter_pref35(__DATA_DIR)
raa_spotter.not_before = __NOT_BEFORE
raa_spotter.get_raa(__KEYWORDS)
if raa_spotter.found == True and __SMTP_HOSTNAME and __SMTP_USERNAME and __SMTP_PASSWORD and __SMTP_PORT and __EMAIL_TO and __EMAIL_FROM:
......
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