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
复制代码
posted @   贵隆  阅读(446)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· 微软正式发布.NET 10 Preview 1:开启下一代开发框架新篇章
· 没有源码,如何修改代码逻辑?
· PowerShell开发游戏 · 打蜜蜂
· 在鹅厂做java开发是什么体验
· WPF到Web的无缝过渡:英雄联盟客户端的OpenSilver迁移实战
点击右上角即可分享
微信分享提示