Nit*_*tin 21 python beautifulsoup
我正在尝试为获取的网页提取元描述.但在这里,我面临的是BeautifulSoup区分大小写的问题.
有些页面有<meta name="Description,有些有<meta name="description.
我的问题非常类似于Stackoverflow上的问题
唯一的区别是我不能使用lxml ..我必须坚持使用Beautifulsoup.
Wil*_*hen 16
您可以为BeautifulSoup提供正则表达式以匹配属性.就像是
soup.findAll('meta', name=re.compile("^description$", re.I))
Run Code Online (Sandbox Code Playgroud)
可能会做的伎俩.来自BeautifulSoup文档的贿赂.
Mik*_*eyB 14
正则表达式?现在我们有另一个问题.
相反,你可以传入一个lambda:
soup.findAll(lambda tag: tag.name.lower()=='meta',
name=lambda x: x and x.lower()=='description')
Run Code Online (Sandbox Code Playgroud)
(x and避免在name没有为标签定义属性时出现异常)
只需稍作修改即可.
soup.findAll('meta', attrs={'name':re.compile("^description$", re.I)})
Run Code Online (Sandbox Code Playgroud)
小智 5
使用bs4使用以下内容:
soup.find('meta', attrs={'name': lambda x: x and x.lower()=='description'})
Run Code Online (Sandbox Code Playgroud)