gpt4 book ai didi

python - python bs4 分析器类中的错误?

转载 作者:太空宇宙 更新时间:2023-11-04 03:51:42 25 4
gpt4 key购买 nike

#!/usr/bin/env python
# -*- coding: utf-8 -*-

from bs4 import BeautifulSoup
import re
doc = "<div>Text text <span class='_ _3'>empty</span> text</div>"
soup = BeautifulSoup(doc)
for span in soup.find_all('span' , class_=re.compile("_\s_[0-9]+")) :
span.decompose()

需要找到所有带<span class=_ _\d+>的标签并从 DOM 中移除。但是由于某种原因,这段代码无法正常工作!

最佳答案

BeautifulSoup 将类拆分成列表;正则表达式不会匹配多个类。 class 是一组这样的属性之一,参见 Multi-valued attributes .

您必须使用自定义函数来使用正则表达式过滤多个类:

def underscored_class_span(elem, numbered=re.compile(u'_\d').match):
if elem.name != 'span': return False
classes = elem.get('class', [])
return u'_' in classes and any(numbered(c) for c in classes)

for span in soup.find_all(underscored_class_span):
span.decompose()

关于python - python bs4 分析器类中的错误?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20993757/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com