用python抓取数据报IndexError: list index out of range怎么办?


import requests,openpyxl
import time
import pymysql
from lxml import etree
import requests

wb=openpyxl.Workbook()
sheet=wb.active
sheet.title='趣阁小说' #给工作簿命名
sheet['A1']='类型'
sheet['B1']='书名'
sheet['C1']='作者'
sheet['D1']='小说链接'
sheet['E1']='更新时间'
sheet['F1']='字数'
sheet['G1']='简介'
sheet['H1']='连载/完本'
sheet['I1']='在看/人'

print("excel创建完毕")
for i in range(11,77,11):#11到77 11定两位数 各个类别翻页
    url = "http://www.qugexs.com/category/?%d"%i #%d十进制 格式化输出 (format)
    for i in range(1,2):
        u=url+'-{}.html'.format(i) #翻页 某个类别翻页
        # print(u)
        header = {
            "user-agent": "Mozilla/5.0 (Linux; Android 6.0; Nexus 5 Build/MRA58N) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/89.0.4389.90 Mobile Safari/537.36"}
        w = requests.get(u, headers=header)
        w.encoding = "GBK"
        html = etree.HTML(w.text)
        dd=html.xpath('//div[@class="side_commend"]/ul[@class="flex"]/li')
        # print(dd)
        for i in dd:
            book_name=i.xpath('./div[2]/a/h2/text()')[0]#书名
            neir=i.xpath('./div[2]/p/text()')[0]#简介
            name=i.xpath('./div[2]/div/a/text()')[0]#作者
            zhishu=i.xpath('./div[2]/div/div/em[1]/text()')[0]#字数
            look_rs=i.xpath('./div[2]/div/div/em[2]/text()')[0]#当前观看人数
            laje = i.xpath('./div[1]/a/@href')[0]#小说链接
            # print(book_name,neir,name,zhishu,look_rs,laje)
            time.sleep(0.5)


            head = {
                'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/81.0.4044.138 Safari/537.36'
            }
            header = requests.get(laje, headers=head)
            header.encoding = "GBK"
            html = etree.HTML(header.text)
            yy = html.xpath('//div[@class="novel_info_title"]')
            for i in yy:
                sf= i.xpath('./p/span[3]/text()')[0]#是否完本
                timm = i.xpath('./div/em/text()')[0]#最近更新时间
                leix = i.xpath('./p/span[1]/text()')[0]  # 类型

                # time.sleep(0.3)
                # print(book_name, neir, name, zhishu, look_rs, wb, timm,laje)
                # print(wb,timm)
                list = []
                time.sleep(0.5)
                print("--*--*--*--正在保存数据--*--*--*--*--")
                sheet.append([leix,book_name,name,laje,timm,zhishu,neir,sf,look_rs])
wb.save('趣阁小说.xlsx')
print("数据保存完毕")

![img](https://img-mid.csdnimg.cn/release/static/image/mid/ask/773666435636172.png "=600 #left")

是有的数据列表为空,无法用索引取值。在凡是有索引取值的地方检查一下,是否取到了空列值,使用try..except异常处理一下。