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

Attrap: ajoute un filtre pour limiter les requêtes de get_raa_with_pager

parent e46a8885
Aucune branche associée trouvée
Aucune étiquette associée trouvée
Aucune requête de fusion associée trouvée
......@@ -312,13 +312,16 @@ class Attrap:
return pages
def get_raa_with_pager(self, pages_list, pager_element, host):
def get_raa_with_pager(self, pages_list, pager_element, host, filter_from_last_element_date=False):
"""
Récupère et analyse les RAA d'une page contenant un pager.
pages_list -- Un tableau contenant la liste des pages
pager_element -- Le chemin CSS vers le lien de page suivante du pager
host -- Le nom d'hôte du site
filter_from_last_element_date -- (Optionnel) Si la date du dernier élément de la dernière page parsée
n'est pas dans la plage temporelle voulue, ne charge pas les pages suivantes. Par défaut à False. Ne doit
être activé que si l'ordre des éléments est chronologique.
"""
elements = []
# On parse chaque page passée en paramètre
......@@ -329,21 +332,23 @@ class Attrap:
for raa in self.get_raa_elements(page_content):
elements.append(raa)
# On regarde également s'il n'y aurait pas un pager
sub_pages = []
for sub_page in self.get_sub_pages(
page_content,
pager_element,
host,
True
):
sub_pages.append(sub_page['url'])
for sub_raa in self.get_raa_with_pager(
sub_pages,
pager_element,
host
):
elements.append(sub_raa)
# Si la date du dernier RAA est dans la plage temporelle voulue,
# on regarde également s'il n'y aurait pas un pager
if not filter_from_last_element_date or (filter_from_last_element_date and (elements[-1].date >= Attrap.get_aware_datetime(self.not_before))):
sub_pages = []
for sub_page in self.get_sub_pages(
page_content,
pager_element,
host,
True
):
sub_pages.append(sub_page['url'])
for sub_raa in self.get_raa_with_pager(
sub_pages,
pager_element,
host
):
elements.append(sub_raa)
return elements
def set_sleep_time(self, sleep_time):
......
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