2011-11-27 1 views
-1
desc = re.compile('<ul class="descShort bullet">(.*)</ul>', re.DOTALL) 
findDesc = re.findall(desc, link_source) 

for i in findDesc: 
    print i 


''' 
<ul class="descShort bullet"> 

     Sleek and distinctive, these eye-catching ornaments will be the star of your holiday decor. These unique glass icicle ornaments are individually handcrafted by artisans in India. 

    </ul> 
''' 

Je suis impatient d'extraire la description entre ul classe tag et/ul. Je suis à la recherche de la soltuion en utilisant REGEX, ainsi que, beautifulsoup.python re.compile Belle soupe

+0

Je suppose au moins vous avez essayé * * utiliser un analyseur HTML ... malheureusement si vous utilisez toujours regex pour analyser HTML. –

+0

Je suis nouveau sur ce site, comment puis-je faire cela? Je vous remercie! – phales15

+1

Parcourez la [liste de vos questions] (http://stackoverflow.com/users/1018129/aaron-phalen?tab=questions); s'il y a une bonne réponse à l'un d'eux, cliquez sur la silhouette de la coche à côté d'elle. – egor83

Répondre

1

Tout d'abord, l'analyse HTML/XML avec des expressions régulières est généralement considérée comme a bad idea. Donc, en utilisant un analyseur comme BeautifulSoup est une meilleure idée en effet.

Qu'est-ce que vous voulez peut être fait comme suit:

from BeautifulSoup import BeautifulSoup 

text = """ 
<ul class="descShort bullet">text1</ul> 
<a href="example.com">test</a> 
<ul class="descShort bullet">one more</ul> 
<ul class="other">text2</ul> 
""" 

soup = BeautifulSoup(text) 

# to get the contents of all <ul> tags: 
for tag in soup.findAll('ul'): 
    print tag.contents[0] 

# to get the contents of <ul> tags w/ attribute class="descShort bullet": 
for tag in soup.findAll('ul', {'class': 'descShort bullet'}): 
    print tag.contents[0]