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

Attrap: get_sub_pages_with_pager prend en paramètre un contenu HTML

Cela permet de ne pas doubler les requêtes dans certains cas.
parent 6de13aa7
Branches
Aucune étiquette associée trouvée
Aucune requête de fusion associée trouvée
......@@ -277,14 +277,19 @@ class Attrap:
"""
Récupère, à partir d'un chemin CSS, les sous-pages d'une page contenant un pager.
page -- L'URL de la page à analyser
page -- L'URL ou le contenu HTML de la page à analyser
sub_page_element -- Le chemin CSS vers l'objet renvoyant vers la sous-page recherchée
pager_element -- Le chemin CSS vers le lien de page suivante du pager
details_element -- Le chemin CSS vers l'objet contenant les détails de la sous-page recherchée
host -- Le nom d'hôte du site
"""
pages = []
page_content = self.get_page(page, 'get').content
if isinstance(page, bytes):
page = page.decode('utf-8')
if page.startswith('https://') or page.startswith('http://'):
page_content = self.get_page(page, 'get').content
else:
page_content = page
# On initialise le parser
soup = BeautifulSoup(page_content, 'html.parser')
......
......@@ -46,7 +46,7 @@ class Attrap_pref38(Attrap):
pages_to_parse.append(card['url'])
# On parse les blocs blancs
blocks = self.get_sub_pages_with_pager(
page,
page_content,
'div.fr-card.fr-card--horizontal.fr-card--sm.fr-enlarge-link.fr-mb-3w div.fr-card__body div.fr-card__content h2.fr-card__title a.fr-card__link',
'ul.fr-pagination__list li a.fr-pagination__link.fr-pagination__link--next.fr-pagination__link--lg-label',
None,
......
......@@ -49,7 +49,7 @@ class Attrap_pref976(Attrap):
# On regarde aussi si sur la page de l'année il n'y aurait pas un
# RAA mal catégorisé
for page_to_parse in self.find_raa_card(raa_page):
for page_to_parse in self.find_raa_card(page_content):
pages_to_parse.append(page_to_parse)
# Pour chaque mois, on cherche les pages des RAA
......
......@@ -39,7 +39,7 @@ class Attrap_prefdpt(Attrap):
page_url = self.page_urls_to_parse[-1]
page_content = self.get_page(page_url, 'get').content # On récupère le HTML de la page
self.parse_grey_cards(page_content) # On parse les cartes grises
self.parse_white_cards(page_url) # On parse les cartes blanches
self.parse_white_cards(page_content) # On parse les cartes blanches
for element in self.get_raa_elements(page_content): # On cherche les RAA
self.elements.append(element)
self.page_urls_to_parse.remove(page_url) # On supprime la page de la liste de celles à parser
......@@ -63,9 +63,9 @@ class Attrap_prefdpt(Attrap):
if date >= self.not_before.replace(day=1) and card['url'] not in self.page_urls_to_parse:
self.page_urls_to_parse.append(card['url'])
def parse_white_cards(self, page_url):
def parse_white_cards(self, page_content):
for card in self.get_sub_pages_with_pager(
page_url,
page_content,
self.white_card_title_css_path, # Carte avec un élément (mois ou arrêté seul)
self.white_card_pager_css_path, # Pager
self.white_card_details_css_path, # Détails (avec la date de publication)
......
0% Chargement en cours ou .
You are about to add 0 people to the discussion. Proceed with caution.
Veuillez vous inscrire ou vous pour commenter