zhaoxinhui

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

 

分类:

技术点:

相关文章:

  • 2021-10-16
  • 2021-11-06
  • 2021-04-01
  • 2021-10-13
  • 2021-04-22
  • 2021-07-14
  • 2021-06-16
  • 2021-12-10
猜你喜欢
  • 2021-12-29
  • 2021-12-17
  • 2021-06-08
  • 2021-06-07
  • 2021-07-29
  • 2021-06-07
  • 2021-12-29
相关资源
相似解决方案