Handling TypeError: 'NoneType' in BeautifulSoup

Handling TypeError: 'NoneType' in BeautifulSoup

我正在使用 BeautifulSoup 抓取一个网页,我在其中查找 csrf 令牌的行有时会抛出 TypeError。

代码是:

csrf = soup.find(id="csrfToken-postModuleForm")['value']

返回的错误是:

TypeError: 'NoneType' object has no attribute '__getitem__'

如果该值不存在,我希望继续执行脚本,而不是抛出异常 - 知道这怎么可能吗?

像这样

try:
    # Try to get the CSRF token
    csrf = soup.find(id="csrfToken-postModuleForm")['value']
except(TypeError, KeyError) as e:
    # Token not found. Replace 'pass' with additional logic.
    pass

在这里,您可以添加任何额外的逻辑,例如:

    print("CSRF Not Found.")

确保您了解 CSRF 令牌的工作原理。它们是网络安全的重要组成部分。