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

如何在BeautifulSoup 4中排除指定类的元素进行选择

解决网页抓取时排除特定类后代元素的问题

要排除类为footer-wikiwalk-nav的元素的后代链接,只需修改BeautifulSoup的CSS选择器,用:not()伪类结合后代选择器过滤掉不需要的元素即可。

修改后的代码如下:

url = searchlinks.get()
c = requests.get(url)
bs = BeautifulSoup(c.content, 'lxml')

parent_url = 'https://EXAMPLEURL.com'
# 用:not(.footer-wikiwalk-nav *)排除目标类的所有后代链接
surfacelinks = [parent_url + str(l) for l, t in list(set([(a.get('href'), 
            a.get_text()) for a in bs.select('[href*="str"]:not(.footer-wikiwalk-nav *)')])) 
            if 'STR' in t]

关键说明:

  • 原选择器[href*="str"]会匹配所有href属性包含str的<a>标签,包括底部导航里的链接。
  • 添加:not(.footer-wikiwalk-nav *)后,会排除所有属于footer-wikiwalk-nav类元素的后代链接,避免误抓底部导航内容。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.29 20:24:58