1. ホーム
  2. python

[解決済み】BeautifulSoupを使ってHTMLの文字列を検索する

2022-02-07 04:11:34

質問

BeautifulSoupを使用して、特定のページでユーザーが入力した文字列を検索しています。 例えば、「Python」という文字列がページ上にあるかどうかを確認したいのです。 http://python.org

使ったとき。 find_string = soup.body.findAll(text='Python') , find_string 戻る []

しかし、私が使ったときは find_string = soup.body.findAll(text=re.compile('Python'), limit=1) , find_string 戻る [u'Python Jobs'] さすがに

検索する単語のインスタンスが複数ある場合に、2番目のステートメントが機能するのは、この2つのステートメントのどこが違うのでしょうか?

どのように解決するのですか?

次の行は 正確 NavigableString 'Python'。

>>> soup.body.findAll(text='Python')
[]

以下のNavigableStringがあることに注意してください。

>>> soup.body.findAll(text='Python Jobs') 
[u'Python Jobs']

この動作に注意してください。

>>> import re
>>> soup.body.findAll(text=re.compile('^Python$'))
[]

つまり、正規表現では、NavigableString 'Python'に完全に一致する文字列ではなく、'Python'が出現するものを探しているのです。