Получение BeautifulSoup для ловли тегов без учета регистра - PullRequest
3 голосов
/ 28 июля 2010

Я хочу поймать некоторые теги с BeautifulSoup: некоторые теги <p>, тег <title>, некоторые теги <meta>.Но я хочу поймать их независимо от их случая;Я знаю, что некоторые сайты имеют мета-код, подобный этому: <META>, и я хочу быть в состоянии это уловить.

Я заметил, что BeautifulSoup по умолчанию учитывает регистр.Как мне поймать эти теги без учета регистра?

Ответы [ 2 ]

2 голосов
/ 28 июля 2010

BeautifulSoup стандартизирует дерево разбора при вводе. Он преобразует теги в нижний регистр. Вам не о чем беспокоиться об ИМО.

0 голосов
/ 28 июля 2010

Вы можете использовать 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" />
...