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

如何捕获网页表格指定列值并统计各状态出现次数

网页表格Status列状态统计解决方案

下面分三种常见场景给出具体实现方案,覆盖静态页面、临时快速统计、动态加载页面三种情况:

1. Python 静态页面抓取(BeautifulSoup + Pandas)

适合页面内容直接渲染在HTML中的静态表格,步骤简单易复用:

  • 先安装依赖包:
pip install requests beautifulsoup4 pandas
  • 示例代码:
import requests
from bs4 import BeautifulSoup
import pandas as pd

# 替换为目标网页URL
url = "你的目标网页地址"
response = requests.get(url)
soup = BeautifulSoup(response.text, "html.parser")

# 定位表格(如果页面有多个表格,可通过id/class筛选,比如soup.find("table", id="target-table"))
table = soup.find("table")

# 用Pandas读取表格数据
df = pd.read_html(str(table))[0]

# 提取Status列并统计(替换为实际列名,比如"Status"或"status")
status_counts = df["Status"].value_counts()

# 输出统计结果
print(status_counts)

2. 浏览器控制台快速统计(JavaScript)

适合临时需求,无需编写脚本,直接在浏览器开发者工具中执行:

  • 打开目标网页,按F12打开开发者工具,切换到Console标签,输入以下代码(需根据表格结构调整选择器):
// 假设Status列是表格的第3列(索引从0开始,可自行调整),或者通过列名定位
const statusCells = document.querySelectorAll("table tr td:nth-child(3)"); // 按列位置定位
// 或者通过列名表头定位:
// const headerIndex = Array.from(document.querySelectorAll("table th")).findIndex(th => th.textContent.trim() === "Status");
// const statusCells = document.querySelectorAll(`table tr td:nth-child(${headerIndex + 1})`);

const statusStats = {};
statusCells.forEach(cell => {
  const status = cell.textContent.trim();
  if (status) {
    statusStats[status] = (statusStats[status] || 0) + 1;
  }
});

console.log("Status统计结果:", statusStats);

执行后即可在控制台看到统计结果。

3. 动态加载表格处理(Selenium + Pandas)

如果表格内容是通过JavaScript异步加载的(比如滚动加载、AJAX请求),需要用Selenium模拟浏览器渲染:

  • 安装依赖:
pip install selenium pandas
  • 示例代码(以Chrome为例):
from selenium import webdriver
from selenium.webdriver.chrome.service import Service
from webdriver_manager.chrome import ChromeDriverManager
import pandas as pd

# 初始化浏览器驱动
driver = webdriver.Chrome(service=Service(ChromeDriverManager().install()))
driver.get("你的目标网页地址")

# 等待表格加载完成(可根据实际情况调整等待时间或用显式等待)
driver.implicitly_wait(10)

# 获取表格元素
table = driver.find_element("tag name", "table")

# 转换为HTML后用Pandas读取
df = pd.read_html(table.get_attribute("outerHTML"))[0]

# 统计Status列
status_counts = df["Status"].value_counts()
print(status_counts)

# 关闭浏览器
driver.quit()

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.10 16:40:22