Я пытаюсь очистить ключевые слова META и теги описания с произвольных сайтов. Я obviusly не имеют контроля над сайтом, так что я должен взять то, что мне дано. У них есть различные оболочки для тегов и атрибутов, что означает, что мне нужно работать без учета регистра. Я не могу поверить, что авторы lxml так же упорны, что настаивают на полном соблюдении принудительных стандартов, когда это исключает большую часть использования их библиотеки.Возможно ли, что lxml работает нечувствительным к регистру образом?
Я хотел бы быть в состоянии сказать doc.cssselect('meta[name=description]')
(или XPath эквивалент), но это не будет ловить <meta name="Description" Content="...">
теги из-за флористику Captial 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
был чувствителен к регистру тоже!
очень круто, я никогда не замечал, что lxml EXSLT поддерживает .. – mykhal