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

Python & BeautifulSoup:从带class的div中获取无标识子链接

解决方法

核心问题分析

你之前的尝试失败主要因为两个点:

  • find_all返回的是ResultSet(标签列表),不能直接调用find_all/select方法,必须遍历列表里的单个Tag对象再操作
  • 部分代码里的class名写错(是object不是objects)、选择器逻辑错误、用了不存在的方法(iselect)

可行方案一:先获取div列表再遍历提取a标签

先拿到目标div列表,再逐个遍历每个div,提取其中的子a标签:

from bs4 import BeautifulSoup

soup = BeautifulSoup(pageToScrape.text, "html.parser")
# 先获取所有class为object的div标签(用class_比attrs更简洁)
div_list = soup.find_all('div', class_='object')

# 收集所有div下的a标签
all_a_tags = []
for div in div_list:
    # 提取当前div下的所有a标签
    links = div.find_all('a')
    all_a_tags.extend(links)

# 如果需要直接获取链接文本或href属性,可直接生成列表:
# 链接文本(自动去除首尾空白)
link_texts = [a.get_text(strip=True) for div in div_list for a in div.find_all('a')]
# 链接地址(先判断href属性存在,避免报错)
link_hrefs = [a['href'] for div in div_list for a in div.find_all('a') if 'href' in a.attrs]

可行方案二:用CSS选择器一步到位

直接通过CSS选择器定位所有class为object的div下的a标签,无需先获取div列表:

from bs4 import BeautifulSoup

soup = BeautifulSoup(pageToScrape.text, "html.parser")
# 选择器语法:div.object 表示class为object的div,空格表示后代元素
all_a_tags = soup.select('div.object a')

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.25 16:53:15