让BeautifulSoup无视大小写捕获标签
我想用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" />