【发布时间】:2018-01-09 10:07:15
【问题描述】:
我正在尝试使用 beautifulsoup 根据数据属性读取和列出 td 中的文本
tr=BeautifulSoup(str(input),'lxml')
tags=tr.findAll('td')
for t in tags:
if t.attrs['data-property']== 'OSVersion':
ver=t.text
这给了我没有细节的错误
KeyError: 'data-property'
请参阅以下示例 tr 提取为输入
<tr >
<td class=" resizable reorderable" data-property="OSVersion">10.2.1</td>
<td class=" resizable reorderable" data-property="DisplayModel">iPad Mini 4 (64 GB Space Gray)</td>
<td class=" resizable reorderable" data-property="PhoneNumber"></td>
<td class="grid_customvariable_colsize resizable reorderable" data-property="DeviceCustomAttributeDetails"></td>
<td class=" resizable reorderable" data-property="DeviceTagDetails"></td>
<td class=" resizable reorderable" data-property="EnrollmentStatusName"> <div class="grid_resizable_col">Enrolled</div>
</td>
<td class=" resizable reorderable" data-property="ComplianceStatusName"> <div class="grid_resizable_col">Compliant</div>
</td>
<td class=" resizable reorderable" data-property="IMEI"></td>
<td class=" resizable reorderable" data-property="LocationGroupName">iOS</td>
<td class=" resizable reorderable" data-property="IsCompromisedYN">No</td>
<td class=" resizable reorderable" data-property="HomeCarrier">Not Reported </td>
<td class=" resizable reorderable" data-property="CurrentCarrier">Not Reported </td>
<td class=" resizable reorderable" data-property="WiFiIPAddress"></td>
<td class=" resizable reorderable" data-property="Notes"></td>
<td class=" resizable reorderable" data-property="WnsStatus"> <span>Disconnected</span>
</td>
<td class=" resizable reorderable" data-property="DmLastSeenTime"> <span class="icon arrow_down_stretched red">-</span>
</td>
</tr>
如果我按照以下方式使用单个 dict,它可以正常工作
d={'class': ['', 'resizable', 'reorderable'], 'data-property': 'FriendlyName'}
print d['data-property']
有人知道如何解决吗?
谢谢
【问题讨论】:
-
在
BeautifulSoup中重命名变量str- 这是一个保留字。 -
试过了,不是这样,如果是这个原因,它甚至不会运行传递到下一行
标签: python beautifulsoup python-requests