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
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】凌霞软件回馈社区,博客园 & 1Panel & Halo 联合会员上线
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】博客园社区专享云产品让利特惠,阿里云新客6.5折上折
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 微软正式发布.NET 10 Preview 1:开启下一代开发框架新篇章
· 没有源码,如何修改代码逻辑?
· PowerShell开发游戏 · 打蜜蜂
· 在鹅厂做java开发是什么体验
· WPF到Web的无缝过渡:英雄联盟客户端的OpenSilver迁移实战