我使用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 = ""
答案 0 :(得分:2)
我认为更好的方式(在我看来)是使用except。
#valid_xpath = '__VIEWSTATEGENERATOR'
invalid_xpath = 'XXXXXXXX'
try:
vgenerator = root.xpath('//*[@id="'+ invalid_xpath +'"]//@value')[0]
except IndexError:
vgenerator = None
print vgenerator