Я пытаюсь очистить ключевые слова и теги META от произвольных веб-сайтов. Я, очевидно, не имею никакого контроля над указанным сайтом, поэтому должен взять то, что мне дали. У них есть различные оболочки для тега и атрибутов, что означает, что мне нужно работать без учета регистра. Я не могу поверить, что авторы lxml столь же упрямы, как и настаивают на полном принудительном соблюдении стандартов, когда это исключает большую часть использования их библиотеки.
Я хотел бы иметь возможность сказать doc.cssselect('meta[name=description]')
(или некоторый эквивалент XPath), но это не поймает <meta name="Description" Content="...">
теги из-за капитала D.
В настоящее время я использую это как обходной путь, но это ужасно!
for meta in doc.cssselect('meta'):
name = meta.get('name')
content = meta.get('content')
if name and content:
if name.lower() == 'keywords':
keywords = content
if name.lower() == 'description':
description = content
Кажется, что имя тега meta
обрабатывается без учета регистра, а атрибуты - нет. Это было бы еще более раздражающим, meta
также чувствителен к регистру!