Красивый суп - обработка ошибок - PullRequest
0 голосов
/ 14 сентября 2011
  1. Я хотел бы знать, как справиться с ситуацией, когда href не существует после <strong>Text:</strong>

  2. Есть ли лучший способ поиска контента, существующего после <strong>Contact:</strong>

http://pastebin.com/FYMxTJkf

1 Ответ

2 голосов
/ 14 сентября 2011

Как насчет findNext ?

import re
from BeautifulSoup import BeautifulSoup

html = '''<strong>Text:</strong>   

        <a href='http://domain.com'>url</a>'''

soup = BeautifulSoup(html)
label = soup.find("strong" , text='Text:')
contact = label.findNext('a')

if contact.get('href') != None:
    print contact
else:
    print "No href"

Если вы ищете специально тег a с href, используйте:

contact = label.findNext('a', attrs={'href' : True})

При этом вам не нужно будет сокращать пробелы. Я полагаю, вы сделали это, потому что next возвращал пробел после метки.

...