使用BeautifulSoup,如何防范未被发现的元素?

Bla*_*man 1 python beautifulsoup

我循环遍历表中的表行,但前1行或2行没有我要查找的元素(它们用于表列标题等).

因此,在说出第3个表行之后,表格单元格(td)中的元素具有我正在寻找的内容.

例如

td[0].a.img['src']
Run Code Online (Sandbox Code Playgroud)

但是调用它会失败,因为前几行没有这个.

How can I guard against these cases so my script doesn't fail?
Run Code Online (Sandbox Code Playgroud)

我得到的错误如下:

nonetype object is unsubscriptable
Run Code Online (Sandbox Code Playgroud)

Ale*_*lli 5

最简单,最清晰,如果您希望代码"在线":

theimage = td[0].a.img
if theimage is not None:
   use(theimage['src'])
Run Code Online (Sandbox Code Playgroud)

或者,最好将None支票包裹在您自己的小功能中,例如:

def getsrc(image):
  return None if image is None else image['src']
Run Code Online (Sandbox Code Playgroud)

并使用getsrc(td[0].a.img).