墨绿Zz
2021-04-07 23:47
采纳率: 42.9%
浏览 38
已采纳

python爬取猫眼top写入excel 提示string index out of range?

#这部分包括写入文件 和调用部分
def excel(items):
    newTable = "test.xls"
    wb = xlwt.Workbook("encoding='utf-8")

    ws = wb.add_sheet('sheet1')
    headDate = ['index', 'img', 'title', 'actor', 'time', 'score']
    for i in range(0,6):
        ws.write(0, i, headDate[i], xlwt.easyxf('font: bold on'))

    index = 1 
    print('---------------')

    for data in items:

        print('---------------')
        for i in range(0,5):

            print(data[i])

            ws.write(index, i, data[i])#只要分配好 自己塞入

        index += 1
        wb.save(newTable)


def main(count):
    url = 'https://maoyan.com/board/4' + str(count)

    html = get_one_page(url)#第一页数据

    for item in parse_one_page(html):#item为一页中的第一条

    	excel(item)#依次写入这个页面的一条 一条

    
    

if __name__ == '__main__':

	for j in range(10):
		main(count = j*10)
		time.sleep(1)

这里我用for循环想爬取100个(10页)信息 才提示的错误 但我如果只爬10个(一页)就不会提示错误 这是为什么???

 

  • 写回答
  • 好问题 提建议
  • 关注问题
  • 收藏
  • 邀请回答

2条回答 默认 最新

  • wjk1397 2021-04-08 01:07
    已采纳

    明显跑到那里时超限了,data里元素数量肯定不到五个,输出一下看看data具体是什么就知道了,问题应该是你get_one_page()里,你解析出来的数据有一组是特殊的,不到五个

    已采纳该答案
    评论
    解决 无用
    打赏 举报
  • coagenth 2021-04-08 14:37

    检查一下parse_one_page()返回的数据类型,才能排查接下来用data的索引问题。

    评论
    解决 无用
    打赏 举报

相关推荐 更多相似问题