编程语言
首页 > 编程语言> > Python爬虫碰到突然缺失某标识后报错:IndexError: list index out of range

Python爬虫碰到突然缺失某标识后报错:IndexError: list index out of range

作者:互联网

        学习爬取豆瓣读书TOP250的时候,想爬取书名和一句话概括的时候,发现有的书没有一句话概括,导致报错:IndexError: list index out of range

        图中有一本书没有<P>标签,所以爬到该处就会报错。

当然可以直接用try……except跳过。不过跳过之后该书就无法爬取到,所以可以重新赋值下一句话概括。

import requests
import time
from lxml import etree
if __name__ == '__main__':
    headers={
        'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/89.0.4389.90 Safari/537.36'
    }
    url='https://book.douban.com/top250?start=75'
    re=requests.get(url,headers=headers).content.decode('utf-8')
    # print(re)
    tree=etree.HTML(re)
    tab=tree.xpath('//*[@id="content"]/div/div[1]/div/table')
    # print(len(title))
    for i in tab:
        title=i.xpath('.//div[@class="pl2"]/a/text()')[0].strip()
        try:
            one=i.xpath('.//p[@class="quote"]/span[@class="inq"]/text()')[0]
        except:
            one='这是一个空字符串a'
        # print(title,one,sep='=====')
        with open('./douban.txt','a',encoding='utf-8') as fp:
            fp.write('书名:%s | 一句话概括:%s\n'%(title,one))

刚刚学习,有不对的地方请指正。

标签:__,index,IndexError,title,re,报错,print,div
来源: https://blog.csdn.net/qq_26876251/article/details/118458835