【发布时间】:2009-11-14 12:35:07
【问题描述】:
我正在尝试从任意网站上抓取 META 关键字和描述标签。我显然无法控制上述网站,所以必须接受我所得到的。它们有各种标签和属性的大小写,这意味着我需要不区分大小写。我不敢相信 lxml 作者会固执地坚持完全强制标准合规,因为它排除了对其库的大部分使用。
我希望能够说 doc.cssselect('meta[name=description]')(或某些 XPath 等效项),但由于其他大写字母 D,这不会捕获 <meta name="Description" Content="..."> 标记。
我目前正在使用它作为解决方法,但这太可怕了!
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也是区分大小写的!
【问题讨论】:
标签: python css-selectors lxml case-sensitive case-insensitive