2016-12-21 86 views
0

我用lxml xpath用於在Python 3如何檢查lxml xpath中是否存在元素?

爲樣本解析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 = "" 
+0

http://stackoverflow.com/a/5690522/4249707 –

回答

0

我認爲更好的辦法(在我看來)使用的除外。

#valid_xpath = '__VIEWSTATEGENERATOR' 
invalid_xpath = 'XXXXXXXX' 

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

print vgenerator