'NoneType' object has no attribute 'strip'?
html是这样的:
<td class="cell_43 cell_guaranteed"> '5 - 7'
::after
</td>
<td class="cell_44">
::after
</td>
<td class="cell_45">
::after
</td>
运行以下程序:
info_list = []table = tree.xpath('//table[@class="market_table_content"]')[0]
for tr in table.xpath('.//tr[not(@class)]'):
info = {
'选择': tr.xpath('.//td[@class="cell_43 cell_guaranteed"]')[0].text.strip(' \r\n\t '),
'数字': tr.xpath('.//td[@class="cell_44"]')[0].text.strip(' \r\n '),
'产量': tr.xpath('.//td[@class="cell_45"]')[0].text.strip(' \r\n\t '),
'订单量': eval(tr.xpath('.//div[@class="btn_order"]/button')[0].get('onclick').strip('MarketOrder'))
}
info_list.append(info)
运行时,由于html中cell_44、cell_45中是空值,程序返回以下错误:
AttributeError: 'NoneType' object has no attribute 'strip'
请各位大佬帮助以上问题该如何解决?请回复详细代码,谢谢。
回答:
先对获取到的内容进行判断,如果为Nonetype是无法使用strip进行切分的
info_list = []table = tree.xpath('//table[@class="market_table_content"]')[0]
for tr in table.xpath('.//tr[not(@class)]'):
# 处理数量
number_text = tr.xpath('.//td[@class="cell_44"]')[0].text
number = number_text.strip(' rn ') if number_text else []
# 处理产量, 选择,订单量同样的逻辑进行处理
以上是 'NoneType' object has no attribute 'strip'? 的全部内容, 来源链接: utcz.com/a/161271.html