美しいスープでいくつかのhtmlフォームを解析しています。基本的に、ラジオボタンとチェックボックスを中心に、約60の入力フィールドがあります。これまでのところ、これは次のコードで機能します。
from BeautifulSoup import BeautifulSoup
x = open('myfile.html','r').read()
out = open('outfile.csv','w')
soup = BeautifulSoup(x)
values = soup.findAll('input',checked="checked")
# echoes some output like ('name',1) and ('value',4)
for cell in values:
# the following line is my problem!
statement = cell.attrs[0][1] + ';' + cell.attrs[1][1] + ';\r'
out.write(statement)
out.close()
x.close()
コードで示すように、属性が選択されている場所に問題があることを示しています。これは、HTML テンプレートが見苦しく、入力フィールドに属する引数のシーケンスが混同されているためです。name="somenumber" value="someothernumber" に興味があります。残念ながら、html では名前と値が同じ順序で発生しないため、attrs[1] アプローチは機能しません。
結果の BeautifulSoup リストに連想的にアクセスする方法はありますか?
提案がある場合は、事前に Thx をお寄せください。