▽1
●
kn1967 ●60ポイント ![]() |
一例
from BeautifulSoup import BeautifulSoup # doc = """ <html><head><title>BeautifulSoup</title></head><body> <select name="s1" size="5" multiple> <option value="101">a</option> <option value="102" selected>b</option> <option value="103">c</option> <option value="104" selected>d</option> <option value="105">e</option> </select> <select name="s2"> <option value="201">aa</option> <option value="202" selected>bb</option> </select> </body></html>""" # soup = BeautifulSoup(doc) for sel in soup.findAll('select'): print sel['name'] for opt in sel.findAll('option', selected="selected"): print opt['value'], opt.renderContents()
結果出力
s1 102 b 104 d s2 202 bb
※ selected="selected" がポイント
これはすでに試しました。
結果出力のようにはなりません。
私の環境はPython2.6+BeautifulSoup 3.1です。
>その申されぶりからは、私の書いたコードそのままではなく、
>ご自身で作られた物での事だと思われますが、違いますか?
PythonShellにてご提示いただいたコードそのまま試しています。
selected="selected"を書いたままだと何もprintされず
selected="selected"を削除するとoptionが全部printされますので
エラーになっているわけではありません。
※追記
kn1967の言われるとおりBeautifulSoupを3.0.7aに落としたら
selected取れるようになりました!
BeautifulSoup3.1系はまだやめたほうがいいということですね。
ちなみにBeautifulSoup3.1系はcheckboxのcheckedも取れません。