inclure uniquement le texte span que contient la chaîne de texte spécifique

voix
0

Je suis en train de trouver un moyen de revenir texte dans l'attribut span si elle contient une chaîne ou d'un caractère dans ce cas ( « : »). Ce que j'ai à ce jour est le suivant:

Contract = soup.find('div', {'class': 'contact-long'}).find_all('span')
Contract_Keys = [span.get_text() for span in Contract]

Je l'ai vu quelque chose le long des lignes de cela, mais il ne fonctionne pas:

Contract = soup.find('div', {'class': 'contact-long'}).find_all('span')
Contract_Keys = [span.get_text() for span in Contract if span.get_text() == :]

Est - il besoin d' une sorte de caractère sauvage (comme « : ») pour le faire fonctionner? Des cris de joie à l' avance pour toute aide.

Créé 09/10/2019 à 12:58
source utilisateur
Dans d'autres langues...                            


2 réponses

voix
1

Qu'est - ce que vous vouliez est probablement vérifier au ":" in span.get_text()lieu de span.get_text() == ":".

Mais ce que vous pouvez faire est d'utiliser regex et textparamètre .find/ findAll:

import re
contracts = soup.findAll('span', text=re.compile('.*:.*')) 
Créé 09/10/2019 à 13:02
source utilisateur

voix
0

Se pourrait-il vous suffit de faire

if ":" in span.get_text()
Créé 09/10/2019 à 13:02
source utilisateur

Cookies help us deliver our services. By using our services, you agree to our use of cookies. Learn more