2
from bs4 import BeautifulSoup
soup = BeautifulSoup( '''<SELECT>
<option value="1">ONE</option>
<option value="2" selected>TWO</option>
<option value="3">THREE</option>
<option value="4">FOUR</option>
<option value="5">FIVE</option>
</SELECT>''' )

print( soup.findAll('option', selected=True) )

出力は次のとおりです。

[]

上記の例で選択したオプションの文字列を取得しようとしています。ただし、「選択済み」が何も割り当てられていない場合、正しいオプションを取得できません。必ずしもTrueに設定する必要はありません。

from bs4 import BeautifulSoup

soup = BeautifulSoup( '''<SELECT>
<option value="1">ONE</option>
<option value="2" selected=''>TWO</option>
<option value="3">THREE</option>
<option value="4">FOUR</option>
<option value="5">FIVE</option>
</SELECT>''' )

print( soup.findAll('option', selected=True) )

出力は次のとおりです。

[<option selected="" value="2">TWO</option>]

私はhtmlファイルを読んでいるだけなので、その部分を制御することはできません。回避する方法はありますか?BeahutifulSoup 4.1.3 と python 3.3.0 を使用しています

4

0 に答える 0