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

如何构建可调用find_all的BeautifulSoup变量以合并多页HTML表格?

解决方法

你的问题确实出在soup_a的类型上——它是一个BeautifulSoup对象的列表,而find_all是单个BeautifulSoup对象的方法,直接对列表调用当然会报错。

要合并所有页面的表格,你需要遍历列表里的每个soup实例,分别提取表格后再汇总到同一个变量里,具体代码修改如下:

import requests
from bs4 import BeautifulSoup as bs

headers = {"User-Agent": "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/120.0.0.0 Safari/537.36"}

# 初始化存储所有表格的列表
main_table_a = []

for i in range(1,6):
    url_a = f'https://www.mascotdb.com/native-american-high-school?page={i}'
    resp_a = requests.get(url_a, headers=headers)
    soup = bs(resp_a.content, "html.parser")
    # 提取当前页面的目标表格,添加到总列表中
    tables = soup.find_all("table", {"class":"table table-striped views-table views-view-table cols-5"})
    main_table_a.extend(tables)

# 此时main_table_a就是包含所有5个页面表格的列表,可后续提取数据

说明:

  • 直接在循环里处理每个页面的soup,提取表格后用extend把表格元素追加到总列表(用extend而不是append,避免把每个页面的表格列表当成单个元素存入)
  • 若后续不需要用到每个页面的完整soup对象,就无需单独保存soup_a列表

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.14 12:07:02