BeautifulSoup не поможет вам разобрать подстроки.Вы можете использовать строковые методы Python для обработки этого или использовать регулярное выражение.
Открывающая и закрывающая скобки здесь - это круглые скобки U + FF08 и U + FF09, вы можете разбить строку на них:
text.partition(u'\uff08')[-1].partition(u'\uff09')[0]
или вы можете использовать регулярное выражение, которое переводит весь текст между двумя такими кодовыми точками:
re.search(ur'\uff08([^\uff09]*)\uff09', text).group(1)
Они оба работают для вашей строки образца:
>>> print text.partition(u'\uff08')[-1].partition(u'\uff09')[0]
支援
>>> import re
>>> print re.search(ur'\uff08([^\uff09]*)\uff09', text).group(1)
支援
Разница заключается в том, как они обрабатывают строки без одной или обеих этих скобок;re.search()
вернет None
в этих случаях, и вы получите AttributeError
за попытку использовать .group
для этого объекта, в то время как str.partition()
создаст либо пустую строку, либо частичную строку:
>>> text = u'no parentheses'
>>> text.partition(u'\uff08')[-1].partition(u'\uff09')[0]
u''
>>> text = u'\uff08open parentheses'
>>> text.partition(u'\uff08')[-1].partition(u'\uff09')[0]
u'open parentheses'
>>> text = u'close parentheses\uff09'
>>> text.partition(u'\uff08')[-1].partition(u'\uff09')[0]
u''
Выберите метод, который наилучшим образом соответствует вашим потребностям.