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

如何合并两次BeautifulSoup查询,将data2作为data1的第11字段

解决方案

首先确保data1和data2的长度一致(都是25条),之后可以通过配对遍历的方式,将data2中的每个元素作为新字段添加到data1对应的字典中。示例代码如下:

import json
from bs4 import BeautifulSoup

headers = ({'User-Agent':
        'Mozilla/5.0 (Windows NT 6.1) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/41.0.2228.0 Safari/537.36'})

sapo="https://casa.sapo.pt/comprar-apartamentos/ofertas-recentes/distrito.lisboa/?pn=1"
soup = BeautifulSoup(response.text, 'html.parser')

# 一次性提取两类数据,无需重复解析页面
data1 = [json.loads(x.string) for x in soup.find_all("script", type="application/ld+json")]
data2 = soup.select('div.property')

# 移除冗余数据
del data1[:2]

# 将data2的元素作为第11个字段加入data1的每条数据中
# 这里用'property_element'作为新字段名,可按需修改
for item, property_div in zip(data1, data2):
    # 若需要保存标签的HTML字符串,替换为 item['property_html'] = str(property_div)
    item['property_element'] = property_div

补充说明

  • zip(data1, data2)会将两个列表的元素一一对应,保证每条房产信息匹配正确的div.property标签。
  • 如果不需要保存完整的Tag对象,而是需要提取标签内的特定内容(比如属性、文本),可以直接在循环里处理,例如:item['property_id'] = property_div.get('data-id')。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.01 18:45:26