让BeautifulSoup无视大小写捕获标签

5 投票
2 回答
3734 浏览
提问于 2025-04-16 01:57

我想用BeautifulSoup抓取一些标签:一些<p>标签,<title>标签,还有一些<meta>标签。不过,我希望不管这些标签的大小写都能抓到;我知道有些网站的meta标签是这样写的:<META>,我想能够抓到这种情况。

我注意到BeautifulSoup默认是区分大小写的。那我该怎么做才能不区分大小写地抓取这些标签呢?

2 个回答

2

BeautifulSoup会在处理输入时,把解析树标准化。它会把标签名转换成小写字母。所以我觉得你不需要担心这个问题。

-1

你可以使用 soup.findAll 这个方法,它可以不区分大小写地进行匹配:

import BeautifulSoup

html = '''<html>
<head>
<meta name="description" content="Free Web tutorials on HTML, CSS, XML" /> 
<META name="keywords" content="HTML, CSS, XML" /> 
<title>Test</title>
</head>
<body>
</body>
</html>'''

soup = BeautifulSoup.BeautifulSoup(html)
for x in soup.findAll('meta'):
    print x

结果:

<meta name="description" content="Free Web tutorials on HTML, CSS, XML" />
<meta name="keywords" content="HTML, CSS, XML" />

撰写回答