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

如何合并两个网页抓取列表?解决仅显示单个实例的问题

解决场馆名称与地址一一配对显示的问题

嘿,我来帮你搞定这个问题!你已经成功抓取到了所有场馆名称和对应地址的数据,但之前的代码逻辑导致最后只能输出最后一组结果——因为你是分别遍历两组数据,循环结束后venue和info变量只会保留最后一次循环的元素。我们只需要调整一下代码,把两组数据配对遍历就能解决。

问题根源

你之前的代码是先单独遍历所有场馆名称,再单独遍历所有地址信息,这两个循环跑完后,venue和info变量仅存储最后一次循环的内容,直接打印自然只能看到最后一组数据。

修复方案

我们先把抓取到的场馆名称和地址分别存入列表,再用zip()函数同时遍历两个列表,实现一一对应输出。顺便还能清理一下地址文本里的冗余格式,让输出更美观。

完整代码示例

from bs4 import BeautifulSoup
import urllib.request

def get_HTML(url):
    response = urllib.request.urlopen(url)
    html = response.read()
    return html

# 解析目标页面
venues_html = get_HTML('http://www.cxra.com/venues/new-york/')
soup = BeautifulSoup(venues_html, "lxml")

# 收集所有场馆名称到列表
venue_names = []
for venue in soup.find_all('a', attrs={'href' : '#', 'onclick' : 'return false;'}):
    # 去除文本前后多余空白
    venue_names.append(venue.text.strip())

# 收集并清理所有地址信息到列表
venue_addresses = []
for info in soup.find_all('div', attrs={'class' : 'infoUnit col-md-6'}):
    # 把换行、回车和连续空格替换成单个空格,再去除首尾空白
    cleaned_address = ' '.join(info.text.split()).strip()
    venue_addresses.append(cleaned_address)

# 一一配对输出每组场馆和地址
for name, address in zip(venue_names, venue_addresses):
    print(f"场馆名称: {name}")
    print(f"地址信息: {address}\n")

代码说明

  1. 收集数据到列表:不再直接打印抓取内容,而是把场馆名称和清理后的地址分别存入venue_names和venue_addresses列表,保存所有抓取到的数据;
  2. 使用zip()配对遍历:zip()函数会将两个列表中对应位置的元素打包成元组,循环时每次就能拿到一组对应的场馆名称和地址;
  3. 文本格式清理:通过split()和join()方法去掉地址文本里的换行、回车和多余空格,让输出更整洁易读。

预期输出

运行代码后,你会看到所有场馆和对应地址的一一展示:

场馆名称: Manhattan Center Studios
地址信息: 311 West 34th Street New York City, 94710 212.613.5536

场馆名称: Ellis Island
地址信息: Ellis Island New York, NY 10004 212.613.5535

场馆名称: The TimesCenter
地址信息: 242 W 41st St New York, NY 10036 212.613.5535

场馆名称: The Altman Building
地址信息: 135 W 18th St New York, NY 10011 212.613.5535

场馆名称: NYIT Auditorium on Broadway
地址信息: 1871 Broadway New York, NY 10023 212.613.5536

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.28 07:20:26