python爬蟲(十六) -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

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM