Problème dans le HTML des pages listes de tuto ?

Le problème exposé dans ce sujet a été résolu.

Salut à tous,

Étant en train d’écrire un mini tuto sur BeautifulSoup j’ai voulu faire un mini crawler qui va extraire des données sur une page liste de tuto du site (ça fait un bon exemple). C’est là que j’ai remarqué quelque chose d’assez bizarre :

les espaces blanc dans le texte du H1

J’ai remarque le même "souci" sur les H3 qui correspondent aux titres de tutos.

C’est voulu ces espaces inutiles ou c’est un léger bug (qui n’a aucun impact visuel et fait chier les crawler du coup ^^) ?

Parcequ’une fois retirés depuis l’inspecteur le design ne bouge pas d’un pixel (donc ils me semblent inutiles)

EDIT : ça semble se présenter aussi sur les listes de tuto de la Homepage du site

+0 -0

Comme dit par GCodeur ça vient du système de gabarits de Django. On peut enlever l’espace entre les balises mais pas au sein d’une balise (du moins pas de manière simple et native). En soit je n’ai pas vu de comportement étrange à ça niveau mais si c’est le cas n’hésitez pas à nous le faire remonter.

+0 -0

Salut,

Bon ba du coup je prendrai un autre site pour le crawling en exemple ^^

alliocha1805

La grande majorité des sites qui utilisent des templating engines auront la même chose et c’est tout à fait normal. Pourquoi est-ce que ça te pose problème ? Un coup de .strip() si la lib ne le fait pas toute seule et c’est réglé (je crois que ce n’est pas nécessaire avec bs4, à tester).

BS parse l’HTML, donc tu n’as pas à te soucier de ces espaces. Comme tu l’as dit ils ne modifient en rien le rendu, ils n’ont aux yeux de la spec HTML et donc aux yeux d’un parseur HTML comme BS aucune valeur, aucun impact.

Ils ne peuvent donc pas poser de problème si tu crawl avec BS. Pourquoi prendre un autre site ?

+0 -0

En gros j’ai ce code et ça me conserve des espaces dans le string contenu dans une variable :

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
# coding: utf-8
from urllib.request import urlopen
import os
from bs4 import BeautifulSoup
import csv

url = "https://zestedesavoir.com/tutoriels/?category=autres-informatique"
page=urlopen(url)
soup=BeautifulSoup(page)

liste_titre=[]
liste_description=[]

h1= soup.find("h3",{"class":"content-title"})
titre=h1.string
titre.strip()
print(titre)

os.system("pause")

M’enfin si c’est normal pour les espaces pas de souci c’était juste au cas où ça pouvait aider pour corriger un bug :)

PS: pour les listes useless et la lib CSV c’est parceque je comptais m’en servir après dans le script

+0 -0
Connectez-vous pour pouvoir poster un message.
Connexion

Pas encore membre ?

Créez un compte en une minute pour profiter pleinement de toutes les fonctionnalités de Zeste de Savoir. Ici, tout est gratuit et sans publicité.
Créer un compte