Вы получаете эту ошибку, когда пытаетесь перебрать объект None.Эта строка
for element in item.find_all(class_=True):
не будет там, где возникло исключение, потому что оно было обработано.Возможная строка, где эта ошибка могла возникнуть, находится за пределами блока try ... except
.Скорее всего, следующую строку
for item in body.find('p',{'class':'contact-info'}):
, чтобы справиться с этим, вы должны запретить итерации по NoneType.У вас есть два варианта.
Использование блока try.... except
.
try:
for item in body.find('p',{'class':'contact-info'}):
i+=1
if(i==2):
phoneNo=''
try:
for element in item.find_all(class_=True):
classes = []
classes.extend(element["class"])
phoneNo+=str((which_digit(classes[1])))
except:
pass
return phoneNo
except:
pass
Использование условного ветвления
items = body.find('p',{'class':'contact-info'})
if items is not None:
for item in items:
i+=1
if(i==2):
phoneNo=''
try:
for element in item.find_all(class_=True):
classes = []
classes.extend(element["class"])
phoneNo+=str((which_digit(classes[1])))
except:
pass
return phoneNo