https://www.cnblogs.com/2bjiujiu/p/9063864.html
Error:IndexError: list index out of range
Where?
对Python中有序序列进行按索引取值的时候,出现这个异常
Why?
对于有序序列: 字符串 str 、列表 list 、元组 tuple进行按索引取值的时候,默认范围为 0 ~ len(有序序列)-1,计数从0开始,而不是从1开始,最后一位索引则为总长度减去1。当然也可以使用 负数表示从倒数第几个,计数从-1开始,则对于有序序列,总体范围为 -len(有序序列) ~ len(有序序列)-1,如果输入的取值结果不在这个范围内,则报这个错
Way?
检查索引是否在 -len(有序序列) ~ len(有序序列)-1 范围内,修改正确
错误代码:
1
2
3
4
|
name = "beimenchuixue" students = [ "beimenchuixue" , "boKeYuan" , "Python" , "Golang" ] print (name[ 20 ]) print (students[ 4 ]) |
正确代码:
1
2
3
4
|
name = "beimenchuixue" students = [ "beimenchuixue" , "boKeYuan" , "Python" , "Golang" ] print (name[ 3 ]) print (students[ 3 ]) |
##########for 循环 遇到 IndexError:
https://www.jianshu.com/p/f1b58ec12b72
失败原因:爬虫在做xpath时候匹配到空值,粗心大意以为网页很简单,没仔细看,因为标识tr还有空值
解决方法:加上try.....except 错误机制跳过tr空值
try:
#寻找tr下面的标识
qihao = item.select('td strong')[0].text
onewei = item.select('td div')[0].text
twowei = item.select('td div')[1].text
threewei = item.select('td div')[2].text
fourwei = item.select('td div')[3].text
fivewei = item.select('td div')[4].text
sixwei = item.select('td div')[5].text
sevenwei = item.select('td div')[6].text
list = [qihao,onewei,twowei,threewei,fourwei,fivewei,sixwei,sevenwei]
all_lists.append(list)
print(list)
except IndexError:
pass