查找包含带有Beautiful Soup的unicode字形的元素

时间:2014-12-23 17:16:39

标签: python unicode beautifulsoup

我使用Beautiful Soup查找具有特定unicode字形(http://en.wikipedia.org/wiki/Miscellaneous_Symbols)的元素。我有一个看起来像这样的HTTML元素:

<li>&#9733; mytext</li>

我试过了:

# pattern = re.compile(r'&#9733)
pattern = re.compile(u'&#9733')
# pattern = re.compile('U+2605')
soup.find_all('li', text=pattern)

但在每种情况下我都会得到一个空列表。我做错了什么?

1 个答案:

答案 0 :(得分:1)

您需要提供Unicode代码点:

pattern = re.compile(u'\u2605')

请参阅Python string literal documentation

演示:

>>> from bs4 import BeautifulSoup
>>> import re
>>> soup = BeautifulSoup('<li>&#9733; mytext</li>')
>>> pattern = re.compile(u'\u2605')
>>> soup.find_all('li', text=pattern)
[<li>★ mytext</li>]