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

使用BeautifulSoup从find_all结果集中提取指定文本的问题求助

解决方法

你当前的代码已经完成了「限定父类筛选目标元素」的逻辑,无法提取到产品名是因为没有调用元素的文本提取方法。

方案1:在原有代码基础上补充文本提取逻辑

如果每个card-headers下可能存在多个card-top-header元素,可直接修改原有循环:

pList = rec_list.find_all(class_="card-headers")
resultA = []
for pl in pList:
    header_items = pl.find_all(class_="card-top-header")
    for item in header_items:
        # strip=True会自动去除文本首尾的空白字符
        resultA.append(item.get_text(strip=True))

如果每个card-headers下仅存在1个card-top-header元素,可简化为:

pList = rec_list.find_all(class_="card-headers")
resultA = []
for pl in pList:
    header = pl.find(class_="card-top-header")
    # 增加非空判断避免无对应元素时报错
    if header:
        resultA.append(header.get_text(strip=True))

方案2:用CSS选择器一步完成定位,代码更简洁

直接使用select方法匹配父类为card-headers下的card-top-header元素,无需嵌套循环,同时天然避免匹配到其他父类下的同名class元素:

target_items = rec_list.select(".card-headers .card-top-header")
resultA = [item.get_text(strip=True) for item in target_items]

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.27 01:54:07