我想选择 href
属性中不包含 mailto:
的所有 anchor 标记。
在 BeautifulSoup 4.7.0 版本之前,我可以使用以下代码:
links = soup.select("a[href^=mailto:]")
BeautifulSoup 4.7.0 版本用 SoupSieve 替换了 CSS 选择器实现,这应该更加现代和完整。
不幸的是,上面的代码现在抛出此错误:
soupsieve.util.SelectorSyntaxError: Malformed attribute selector
该代码的直接替代是什么?定位这些相同元素的正确方法是什么?
最佳答案
href
值中的冒号似乎是 just needed to be escaped .
您可以通过转义单个字符来做到这一点:
soup.select("a[href^=mailto\\:]")
或者通过引用整个值:
soup.select('a[href^="mailto:"]')
关于python - 在 BeautifulSoup 4.7.0+ 中,如何选择在其属性之一中不包含指定文本的所有元素,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58296098/