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

如何用Selenium和Python获取区域条件表格并保留外部标题?

问题解决:抓取区域条件标题与表格数据并存入DataFrame

错误原因

你遇到的'WebElement' object is not iterable报错,是因为condiciones_regionales是通过find_element()(单数方法)获取的单个WebElement对象,不能直接用于循环遍历。你应该遍历的是用find_elements()(复数方法)得到的区域项元素列表。

完整解决方案代码

from selenium import webdriver
from selenium.webdriver.common.by import By
import pandas as pd

# 初始化浏览器
driver = webdriver.Chrome()
driver.get("https://conveniomarco.mercadopublico.cl/alimentos/marketplace/seller/profile/shop/797095-5800279")

# 定位"Condiciones Regionales"的父容器
regional_container = driver.find_element(By.CSS_SELECTOR, "div.box-regional-info")
# 获取所有区域项(每个项包含一个区域标题+对应表格)
region_items = regional_container.find_elements(By.CSS_SELECTOR, "div.item")

# 存储所有区域的数据
all_region_data = []

for item in region_items:
    # 提取区域标题(比如"Region de Coquimbo")
    region_title = item.find_element(By.CSS_SELECTOR, "h4").text.strip()
    # 提取当前区域的表格HTML
    table_element = item.find_element(By.CSS_SELECTOR, "table")
    table_html = table_element.get_attribute("outerHTML")
    # 将表格解析为DataFrame
    table_df = pd.read_html(table_html)[0]
    # 给当前表格添加区域标题列,保留关联信息
    table_df["区域"] = region_title
    # 添加到总列表
    all_region_data.append(table_df)

# 合并所有区域的数据为一个大DataFrame
final_df = pd.concat(all_region_data, ignore_index=True)
# 打印结果
print(final_df)

# 关闭浏览器
driver.quit()

代码说明

  1. 定位修正:用find_elements()获取所有div.item元素,得到可遍历的列表
  2. 标题提取:每个区域项里的标题对应h4标签,直接提取文本即可
  3. 表格解析:针对每个区域内的表格,提取其HTML后用pd.read_html()解析为DataFrame
  4. 关联标题:给每个表格的DataFrame新增一列存储区域标题,避免丢失关联信息
  5. 合并数据:将所有区域的小DataFrame合并为一个完整的数据集

内容的提问来源于stack exchange,提问作者Cristian Avendaño

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.21 08:17:18