Yanir7 2019-04-02 14:23 采纳率: 0%
浏览 813

爬虫,老是报错说我的index超出range

import sys

import requests
from bs4 import BeautifulSoup

class downloader():
    def __init__(self):
        self.server='https://www.biqukan.com'
        self.book='https://www.biqukan.com/18_18805'
        self.names=[]
        self.urls=[]

    def get_url(self):
        re=requests.get(self.book)
        bs=BeautifulSoup(re.text,features='html5lib')
        div = bs.find_all('div', class_='listmain')
        bs_child = BeautifulSoup(str(div[0]), features="html5lib")
        div_a = bs_child.find_all('a')
        div_a = div_a[12:]
        for a in div_a:
            self.names.append(a.string)
            self.urls.append(self.server + a.get('href'))
        # for i in range(len(self.names)):
        #     print(self.names[i], ' ', self.urls[i])


    def get_content(self,url):
        re = requests.get(url)
        bs=BeautifulSoup(re.text,features='html5lib')
        content=bs.find_all('div',id='content')
        text=content[0].text
        # print(text)
        return text

    def save(self,path,name,text):
        with open(path,'a',encoding='utf-8') as f:
            f.write(name+'\n')
            f.writelines(text)
            f.write('\n\n')


if __name__=='__main__':
    dl=downloader()
    dl.get_url()
    print('《地球唯一修士》开始下载:')
    for i in range(len(dl.urls)):
        t=dl.get_content(dl.urls[i])
        dl.save('novel.txt', dl.names[i],t)
        sys.stdout.write("已下载:{:.3f}".format(i/len(dl.names))+'\r')
        sys.stdout.flush()
    print("《地球唯一修士》下载完毕!")


Traceback (most recent call last):
File "test.py", line 47, in
t=dl.get_content(dl.urls[i])
File "test.py", line 31, in get_content
text=content[0].text
IndexError: list index out of range

  • 写回答

2条回答

  • 流泪熊猫头 2019-04-02 19:30
    关注

    有可能是content里面没有内容,你检查下。

    评论

报告相同问题?

悬赏问题

  • ¥20 腾讯企业邮箱邮件可以恢复么
  • ¥15 有人知道怎么将自己的迁移策略布到edgecloudsim上使用吗?
  • ¥15 错误 LNK2001 无法解析的外部符号
  • ¥50 安装pyaudiokits失败
  • ¥15 计组这些题应该咋做呀
  • ¥60 更换迈创SOL6M4AE卡的时候,驱动要重新装才能使用,怎么解决?
  • ¥15 让node服务器有自动加载文件的功能
  • ¥15 jmeter脚本回放有的是对的有的是错的
  • ¥15 r语言蛋白组学相关问题
  • ¥15 Python时间序列如何拟合疏系数模型