0

我正在尝试在网页中搜索带有 'ä' 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”

谢谢

4

1 回答 1

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 转义码。

于 2013-06-09T16:37:36.523 回答