[英]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.