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

如何在BeautifulSoup中合并多个标签结果为单个地址字段?

解决方案

问题出在你对BeautifulSoup结果列表的索引方式和文本提取逻辑上,以下是具体修正方法:

错误根源

  • find_all('span')[1, 2, 3, 4]是无效的Python列表索引语法,列表不支持用元组直接索引多个位置,会触发TypeError。
  • 即便能正确取出多个<span>元素,列表对象本身没有.text属性,只有单个Tag对象才有该属性,因此无法直接获取合并后的文本。

修正步骤

  1. 先获取目标div下的所有span元素列表
  2. 提取索引1到4的span(用切片[1:5],Python切片为左闭右开,[1:5]恰好包含索引1、2、3、4的元素)
  3. 遍历这些span元素,逐个提取文本并去除多余空白
  4. 用合适的分隔符(如空格、换行)拼接成完整地址

修改后的代码片段

将原代码中地址相关的行替换为:

# 获取目标div下的所有span元素
span_list = company.find('div', class_="col-sm-6 col-xs-12").find_all('span')
# 提取指定span的文本,去空白后拼接成地址
address = ' '.join([span.text.strip() for span in span_list[1:5]])

额外提示

  • 注意拼写:代码里的adress是拼写错误,正确应为address,建议统一修正,避免后续写入Excel时字段名不一致。
  • 若地址各部分需要换行分隔,只需把' '.join(...)改为'\n'.join(...)即可。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.14 20:14:57