python re.compile Красивый суп - PullRequest
       4

python re.compile Красивый суп

0 голосов
/ 28 ноября 2011
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>
'''

Я пытаюсь извлечь описание между тегом класса ul и / ul. Я ищу решение, используя REGEX, а также, Beautifulsoup.

1 Ответ

1 голос
/ 28 ноября 2011

Прежде всего, синтаксический анализ HTML / XML с помощью регулярных выражений обычно считается плохой идеей . Так что использование парсера вроде BeautifulSoup - действительно лучшая идея.

То, что вы хотите, можно сделать следующим образом:

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]
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...