Используя BeautifulSoup, как защитить от элементов, которые не найдены?

Я перебираю строки таблицы в таблице, но первые 1 или 2 строки не имеют элементов, которые я ищу (они предназначены для заголовков столбцов таблицы и т. Д.).

Итак, после 3-й строки таблицы, в ячейках таблицы (td) есть элементы, которые имеют то, что я ищу.

например

td[0].a.img['src'] 

Но вызов этого невозможен, поскольку первые несколько строк этого не имеют.

 How can I guard against these cases so my script doesn't fail? 

Я получаю такие ошибки, как:

 nonetype object is unsubscriptable 

Самый простой и понятный, если вы хотите, чтобы ваш код «в строке»:

 theimage = td[0].a.img if theimage is not None: use(theimage['src']) 

Или, предпочтительно, оберните проверку « None крошечной функцией, например:

 def getsrc(image): return None if image is None else image['src'] 

и используйте getsrc(td[0].a.img) .

Начиная с tr:

 for td in tr.findChildren('td'): img = td.findChild('img') if img: src = img.get('src', '') # return a blank string if there's no src attribute if src: # do something with src