我使用Beautiful Soup查找具有特定unicode字形(http://en.wikipedia.org/wiki/Miscellaneous_Symbols)的元素。我有一个看起来像这样的HTTML元素:
<li>★ mytext</li>
我试过了:
# pattern = re.compile(r'★)
pattern = re.compile(u'★')
# pattern = re.compile('U+2605')
soup.find_all('li', text=pattern)
但在每种情况下我都会得到一个空列表。我做错了什么?
答案 0 :(得分:1)
您需要提供Unicode代码点:
pattern = re.compile(u'\u2605')
请参阅Python string literal documentation。
演示:
>>> from bs4 import BeautifulSoup
>>> import re
>>> soup = BeautifulSoup('<li>★ mytext</li>')
>>> pattern = re.compile(u'\u2605')
>>> soup.find_all('li', text=pattern)
[<li>★ mytext</li>]