0

「ä」などの文字を含む Web ページでテキストを検索しようとしていますが、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') 

Webページを読んだときにWebページを正しくエンコードする方法を知っている人はいますか、または上記のコードで「/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 に答える