bs4:搜索'ä'等特殊字符

时间:2013-06-09 16:09:12

标签: python beautifulsoup

我正在尝试在网页中搜索文字,其中包含'ä'等字符bs4无法正确编码这些文字,因此我无法正确搜索网站。例如

 <td>
     <a href="/gy/area/name/1208.html">täkäen</a>

soup.findAll(text='täkäen') - does not work

我也试过搜索.html字符串(下面),但这似乎也行不通。

soup.findAll(text='/gy/area/name/1208.html') 

当我阅读网页时,或者只是在上面的代码中搜索“/gy/area/name/1208.html”时,是否有人知道如何正确编码网页

由于

1 个答案:

答案 0 :(得分:1)

您需要查找 unicode 值:

soup.findAll(text=u'täkäen')

演示:

>>> from bs4 import BeautifulSoup
>>> soup = BeautifulSoup('''\
...  <td>
...      <a href="/gy/area/name/1208.html">täkäen</a>
... ''')
>>> soup
<html><body><td>
<a href="/gy/area/name/1208.html">täkäen</a></td></body></html>
>>> soup.findAll(text=u'täkäen')
[u't\xe4k\xe4en']

您需要确保正确设置源代码编码,或使用unicode转义码。