Je construis un extrait de données en utilisant scrapy et je veux normaliser une chaîne brute tirée d'un document HTML. Voici un exemple de chaîne:Normaliser les espaces avec Python
Sapphire RX460 OC 2/4GB
avis deux groupes de deux espaces précédant la chaîne littérale et entre OC
et 2
.
Python fournit l'assiette comme décrit dans How do I trim whitespace with Python? Mais cela ne gèrera pas les deux espaces entre OC
et 2
, dont j'ai besoin replié dans un seul espace.
J'ai essayé d'utiliser normalize-space()
de XPath lors de l'extraction des données avec mes scrapy Selector et qui fonctionne, mais l'affectation verbeux avec une forte dérive vers la droite:
product_title = product.css('h3').xpath('normalize-space((text()))').extract_first()
Y at-il une façon élégante de normaliser les espaces en utilisant Python? S'il n'y a pas de doublure, y a-t-il un moyen de casser la ligne ci-dessus en quelque chose de plus facile à lire sans lancer une erreur d'indentation, par ex.
product_title = product.css('h3')
.xpath('normalize-space((text()))')
.extract_first()
C'est élégant et fonctionne parfaitement. Merci, Tom! –
Appliqué dans le [contexte de Scrapy] (https://stackoverflow.com/a/46501593/712334), le cas d'utilisation dont j'ai fini par en avoir besoin. –