Результат find_all
подобен list
.Если вы попытаетесь проиндексировать его, когда он пуст, это вызовет ошибку.
Это говорит о том, что он не может найти что-либо, соответствующее вашим указанным критериям на странице.Чтобы обрабатывать такие случаи, вы должны сначала проверить, нашел ли find_all
что-нибудь, и только потом индексировать это:
site_links = []
site_img = []
# PARSES ALL IMAGE SOURCES ON THE WEBSITE
for i in site_links:
r = requests.get(i).text
soup = bs4.BeautifulSoup(r, 'html5lib')
images = soup.find('div', {'itemprop' : 'blogPost'}).find_all('img')
if images:
img = images[0].get('src', '')
if '.jpg' in img:
site_img.append(site_img)
print(img)
else:
print('No image found.')
Обратите внимание, что я также изменил вызов get
, чтобы он возвращал пустую строку, если src
не может быть найдено, что также предотвратит возникновение ошибки, так как в противном случае будет возвращено None
, что приведет к сбою следующего теста на включение.