2016-12-21 6 views
0

Ich benutze lxml xpath HTML-Seite in Python zum Parsen 3.Wie überprüfen, ob Element in Lxml XPath vorhanden ist?

Als Beispielcode Ich habe, das findet HTML-Element:

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

Vater ich Mysql Abfrage einfügen müssen:

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

Problem ist, dass, wenn nicht Element in HTML DOM ist, deshalb bekomme ich Mysql Fehler, wenn ich versuche, Ergebnis in Zeile zu erhalten: version[0] und in Frage gestellt.

Manchmal Ergebnis Array hat keinen Index version_android[0], aber hat Index version_android[2]: Es macht einen Fehler in der Funktion einfügen Mysql.

Wie kann ich das bestätigen? Ich habe viele Regeln zum Parsen.

Ich habe versucht, aber ich mag nicht diese Lösung:

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 –

Antwort

0

Ich denke, die bessere Art und Weise (meiner Meinung nach) dem außer der Verwendung.

#valid_xpath = '__VIEWSTATEGENERATOR' 
invalid_xpath = 'XXXXXXXX' 

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

print vgenerator 
Verwandte Themen