【问题标题】:How check if element exist in lxml xpath?如何检查lxml xpath中是否存在元素?
【发布时间】:2016-12-21 16:38:26
【问题描述】:

我使用lxml xpath 在 Python 3 中解析 HTML 页面。

作为示例,我有代码,可以找到元素 HTML:

version_android  = doc.xpath("//div[@itemprop='operatingSystems']//text()")

父亲我已经插入 Mysql 查询:

insert = ("insert into tracks (version) values ('%s')" % (version_android[0]))

问题是,如果不是 HTML DOM 中的元素,因此当我尝试在行中获取解析结果时出现 Mysql 错误:version[0] 并输入查询。

有时结果数组没有索引version_android[0],但有索引version_android[2]:在插入函数Mysql中出错。

我如何验证这是否正确?我有很多相同的解析规则。

我试过这个,但我不喜欢这个解决方案:

version_android = doc.xpath("//div[@itemprop='operatingSystems']//text()")
        if len(version_android):
            version_android = version_android[0]
        else:
            version_android = ""

【问题讨论】:

标签: python python-3.x lxml lxml.html


【解决方案1】:

我认为更好的方法(在我看来)是使用 except。

#valid_xpath = '__VIEWSTATEGENERATOR'
invalid_xpath = 'XXXXXXXX'

try:
    vgenerator = root.xpath('//*[@id="'+ invalid_xpath +'"]//@value')[0]
except IndexError:
    vgenerator = None 

print vgenerator

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2022-07-06
    • 2011-08-07
    • 2019-01-23
    • 2019-08-22
    • 2021-09-19
    • 2017-02-21
    • 1970-01-01
    相关资源
    最近更新 更多