You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Python新手遇AttributeError:NoneType对象无findAll属性求助

问题解决思路

你遇到的AttributeError是因为s.find(id='ResultsContainer')返回了None,说明目标页面里不存在这个id的元素,或者请求没获取到正确的页面内容。

第一步:确保请求能正常获取页面

英国税务网站可能会拦截无浏览器标识的请求,给requests.get添加请求头模拟浏览器即可解决:

from openpyxl import load_workbook  # 原代码导入的workbook未使用,可删除
from bs4 import BeautifulSoup
import requests

url = "https://www.tax.service.gov.uk/check-vat-number/enter-vat-details"
# 添加浏览器标识头
headers = {
    'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/118.0.0.0 Safari/537.36'
}
html = requests.get(url, headers=headers)

# 先校验请求是否成功
if html.status_code != 200:
    print(f"请求失败,状态码:{html.status_code}")
else:
    s = BeautifulSoup(html.content, 'html.parser')
    # 后续定位元素写在这里

第二步:正确定位VAT输入框

实际查看目标页面结构,VAT号码输入框的name属性为vat-number,可通过以下代码定位:

# 找到输入框所在的表单组
form_group = s.find('div', class_='govuk-form-group')
if form_group:
    # 定位VAT输入框
    vat_input = form_group.find('input', {'name': 'vat-number'})
    if vat_input:
        print(f"找到VAT输入框:name={vat_input.get('name')},id={vat_input.get('id')}")
    else:
        print("未找到VAT输入框")
else:
    print("未找到表单组")

核心问题说明

你之前代码里的ResultsContainer在目标页面中根本不存在,所以s.find()返回None,调用find_all自然会触发报错。

内容的提问来源于stack exchange,提问作者Neil

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.27 00:33:15