簡體   English   中英

如何檢查lxml xpath中是否存在元素?

[英]How check if element exist in lxml xpath?

我使用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 = ""

我認為更好的方法(在我看來)是使用except。

#valid_xpath = '__VIEWSTATEGENERATOR'
invalid_xpath = 'XXXXXXXX'

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

print vgenerator

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM