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

使用Python Beautiful Soup爬取IMDB提取导演信息问题求助

问题根因

你现有代码直接提取目标p标签下的第一个<a>标签内容,当电影条目无导演信息时,该位置的第一个<a>标签对应就是演员信息,因此会出现导演列表混入演员数据的问题。

修复方案

利用IMDB该区块的固定结构特征:导演信息前一定会带有Director:(单人导演)或Directors:(多人导演)的文本标识,我们只需要定位到该标识后再提取紧邻的<a>标签内容即可:

修改后的提取函数

def getDirector(text_muted):
    try:
        # 匹配导演标识文本,兼容单/多人导演场景
        director_label = text_muted.find(string=lambda content: content and content.strip().startswith(('Director:', 'Directors:')))
        if director_label:
            # 提取标识后第一个a标签的文本,即为导演名
            return director_label.find_next_sibling("a").get_text(strip=True)
        # 无导演标识直接返回NA
        return 'NA'
    except:
        return 'NA'

补充说明

  • 原有调用代码无需修改,直接复用即可
  • 如果需要提取全部导演(多人导演场景),可以将find_next_sibling替换为循环查找后续同层级<a>标签,直到碰到|分隔符或Stars:标识为止
  • 该方案依赖IMDB的页面结构约定,适配你给出的目标列表页面结构

内容的提问来源于stack exchange,提问作者Anthony X.

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.24 03:06:02