HTMLドキュメントを解析しようとしていますが、bs4が特定のタグの属性を解析できません。
<select class="inputNormal" id="TipoImmobileDaNonImportare" name="TipoImmobileDaNonImportare" style="width:100%">
<option value=""></option>
<option value="unità immobiliare urbana">unità immobiliare urbana</option>
<option value="particella terreni">particella terreni</option>
</select>
印刷すると、エラーが発生します
AttributeError: 'tuple' object has no attribute 'items'`
the tag and attribute i print:`select: (u'style', u'class', u'name')`
instead of (for example): `input: {u'type': u'hidden', u'name': u'Immobile_Note', u'value': u'Ubicazione occupazione', u'id': u'Immobile_Note'}`
更新:soup.find_all( attrs= {'id' : 'somevalue' } )
ツリーのすべての属性にアクセスしようとすると失敗します!
私が試してみると:
s = BeautifulSoup( """<select class="inputNormal" id="TipoImmobileDaNonImportare" name="TipoImmobileDaNonImportare" style="width:100%">
<option value=""></option>
<option value="unità immobiliare urbana">unità immobiliare urbana</option>
<option value="particella terreni">particella terreni</option>
</select>""")
パーサーはそれを正しく検出します。
select: {'id': 'TipoImmobileDaNonImportare', 'style': 'width:100%', 'class': ['inputNormal'], 'name': 'TipoImmobileDaNonImportare'}
lxmlパーサーとhtml5libパーサーで解析しようとしましたが、結果は同じです。
返信ありがとうございます。
編集:Amandaに感謝しますが、私のコードにエラーがありましたtag.attrs
。このコードはbs3からbs4に移植されているため、toupleオブジェクトに格納しようとしています。ありがとう。