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