python xpath匹配html报错IndexError: list index out of range

在用lxml和xpath对一个网站进行解析,在解析的时候出现错误-IndexError: list index out of range
原因是在中这个网站的html代码中有的标识为空,只要加上try.....except 错误机制跳过空值就行了
例如:
html=etree.HTML(text)
ul=html.xpath("//ul[@class='lists']")[0]
lis = ul.xpath("//li")
for li in lis:
title=li.xpath("@data-title")[0]
score=li.xpath("@data-score")[0]
duration=li.xpath("@data-duration")[0]
region=li.xpath("@data-region")[0]
director=li.xpath("@data-director")[0]
actors=li.xpath("@data-actors")[0]
thumbnail=li.xpath(".//img/@src")[0]
movie={
'title':title,
'score':score,
'duration':duration,
'region':region,
'director':director,
'actors':actors,
'thumbnail':thumbnail
}
print(movie)
这个代码在运行之后就会出现错误:IndexError: list index out of range
修改之后的代码:
html=etree.HTML(text)
ul=html.xpath("//ul[@class='lists']")[0]
lis = ul.xpath("//li")
for li in lis:
try:
title=li.xpath("@data-title")[0]
score=li.xpath("@data-score")[0]
duration=li.xpath("@data-duration")[0]
region=li.xpath("@data-region")[0]
director=li.xpath("@data-director")[0]
actors=li.xpath("@data-actors")[0]
thumbnail=li.xpath(".//img/@src")[0]
movie={
'title':title,
'score':score,
'duration':duration,
'region':region,
'director':director,
'actors':actors,
'thumbnail':thumbnail
}
print(movie)
except IndexError:
pass

个人博客:http://www.qbeee.cn

浙公网安备 33010602011771号