如何提取id为mosaic-provider-jobcards的div标签内嵌套的a标签数据
需求说明
提取嵌套在id为mosaic-provider-jobcards的div标签下的5个卡片对应的a标签数据列表,对应HTML结构参考:
原代码错误点
- id属性在HTML中是唯一值,无需使用
find_all查询目标div,直接用find即可拿到唯一节点 - 原代码调用全局
soup.find_all('a')查询的是整个页面的所有a标签,而非目标div下的a标签,查询范围错误 - 列表追加逻辑写反,正确写法为
列表对象.append(待添加元素),原写法逻辑完全颠倒,导致btag始终为空
正确实现代码
btag = [] # 定位目标父div target_div = soup.find('div', id="mosaic-provider-jobcards") if target_div: # 仅在目标div范围内查找a标签,可根据实际卡片a标签的属性增加筛选条件,避免捞到无关a # 示例:如果卡片a都带data-jk属性,可写成 target_div.find_all('a', attrs={"data-jk": True}) a_tag_list = target_div.find_all('a') for a_tag in a_tag_list: btag.append(a_tag) print(btag)
如果需要提取a标签的链接或文本,可修改追加逻辑:
- 提取跳转链接:
btag.append(a_tag.get('href')) - 提取链接文本:
btag.append(a_tag.get_text(strip=True))
内容的提问来源于stack exchange,提问作者curiouz
相关产品推荐
相关产品推荐

