BS4:区分大小写搜索
我想知道有没有办法只找到那些全大写的标签?我有一个HTML页面,里面有标签<a href=..>
和标签<A href=...>
。我只想获取格式为<A href=..>
的标签。
当我尝试使用all = index.findAll('A')
时,它什么都不返回。可是如果我用all = index.findAll('a')
,我就会得到所有的'a'和'A'标签。
谢谢大家的建议。
1 个回答
2
HTML对大小写不敏感;在解析时,所有标签都会被转换成小写。
如果你需要区分标签的大小写,就得把文档当作XML来解析。你需要安装lxml
,然后告诉BeautifulSoup使用XML模式来解析:
soup = BeautifulSoup(source, 'xml')
需要注意的是,XML的规则比HTML要严格;如果你解析的HTML文档不符合这些严格的规则,可能会解析失败。