2009-12-16 3 views
0

Code de travail: Google dictionary lookup via python and beautiful soup -> exécutez simplement et entrez un mot.Extraire des données de la liste d'un site Web, sans les étiquettes superflues

J'ai tout simplement extrait la première définition d'un élément de liste spécifique. Cependant, pour obtenir des données simples, j'ai dû diviser mes données au saut de ligne, puis les supprimer pour supprimer la balise de liste superflue.

Ma question est, existe-t-il une méthode pour extraire les données contenues dans une liste spécifique sans faire ma manipulation de chaîne ci-dessus - peut-être une fonction dans la belle soupe que je n'ai pas encore vu?

Ceci est la section pertinente du code:

# Retrieve HTML and parse with BeautifulSoup. 
    doc = userAgentSwitcher().open(queryURL).read() 
    soup = BeautifulSoup(doc) 

# Extract the first list item -> and encode it. 
    definition = soup('li', limit=2)[0].encode('utf-8') 

# Format the return as word:definition removing superfluous data. 
    print word + " : " + definition.split("<br />")[0].strip("<li>") 
+0

Alors ... vous voulez gratter un site Web? – marcc

+0

Eh bien, c'est ce que fait mon code. – torger

+0

Je n'ai aucune idée de ce qu'est le beau savon, mais je ne peux pas aider mais sourire à son acronyme –

Répondre

1

Je pense que vous cherchez findAll (text = True) cela va extraire le texte des balises

definitions = soup('ul')[0].findAll(text=True) 

retournera un ist de tout le contenu du texte brisé aux limites de l'étiquette

Questions connexes