'NoneType' object has no attribute 'strip'?

发布于 2022-09-12 13:58:48 字数 1050 浏览 27 评论 0

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'

请各位大佬帮助以上问题该如何解决?请回复详细代码,谢谢。

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

妞丶爷亲个 2022-09-19 13:58:48

先对获取到的内容进行判断,如果为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 []
    # 处理产量, 选择,订单量同样的逻辑进行处理
~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文