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

基于Pandas与Beautiful Soup的网页爬取:提取指定标签内链接问题

修正你的BeautifulSoup提取代码

我帮你梳理下代码里的问题,再给出调整后的版本:

原代码的几个问题

  • 调用find_all时错误传入了完整标签字符串('<td class="series-column"'),正确姿势是指定标签名,再用class_参数筛选类
  • 内层查找<a>标签时,没有限定在当前<td>范围内,会遍历整个文档的所有<a>标签
  • 判断class属性的逻辑有误:link.has_attr('class') == 'formatted-title external-link result-url',class属性返回的是字符串列表,不能直接和字符串做相等比较

修正后的代码

# 假设你已经初始化了BeautifulSoup对象,变量名为soup
for row in soup.find_all('td', class_='series-column'):
    # 仅在当前td标签内部查找a标签
    for link in row.find_all('a'):
        # 检查href属性存在,且所有目标class都在a标签的class列表中
        if link.has_attr('href') and all(cls in link.get('class', []) for cls in ['formatted-title', 'external-link', 'result-url']):
            print(link['href'])

额外提示

  • 记得把代码里的soup替换成你实际使用的BeautifulSoup对象变量名
  • link.get('class', []) 是为了避免a标签没有class属性时抛出异常,默认返回空列表
  • 如果你只需要匹配部分class,可调整all()里的判断逻辑,比如换成any()或者指定单个class检查

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.09 10:32:49