如何使用BeautifulSoup提取HTML标签属性中的导演信息?
不需要转成字符串用正则匹配,用BeautifulSoup自带的属性读取功能结合简单的字符串拆分就能实现,效率和稳定性都更好。
具体实现步骤
- 第一步:获取目标a标签对象,你调用
find_all('a')返回的是标签列表,取第一个元素即可:a_tag = director[0] - 第二步:读取a标签的
title属性值,推荐用get方法避免属性不存在时报错:title_text = a_tag.get('title', '') - 第三步:按规则拆分提取导演信息,你的示例中导演名称后统一带
(dir.)标识,按逗号拆分后筛选即可:if title_text: # 拆分所有人员列表 person_list = [item.strip() for item in title_text.split(',')] # 筛选出带导演标识的条目,去掉标记后得到导演名称 director_list = [item.replace('(dir.)', '').strip() for item in person_list if '(dir.)' in item]
运行后director_list中就存储了所有提取到的导演,你给出的示例运行后得到的结果为['Frank Darabont']。这种方式比正则更简单易维护,也不会出现正则匹配漏判、误判的问题,是更合适的实现方式。
内容的提问来源于stack exchange,提问作者Cybers
相关产品推荐
相关产品推荐

