当前位置:  开发笔记 > 编程语言 > 正文

BeautifulSoup中的select方法无法用空格选择属性值

如何解决《BeautifulSoup中的select方法无法用空格选择属性值》经验,为你挑选了1个好方法。



1> alecxe..:

您必须将属性值括在双引号中:

a[href="/city/london d12"]

但是,看起来这个特定的选择器被识别为"无效" BeautifulSoup.这是因为BeautifulSoup只支持基本的CSS选择器:

这对于了解CSS选择器语法的用户来说非常方便.你可以使用Beautiful Soup API完成所有这些工作.如果你只需要CSS选择器,你也可以直接使用lxml:它更快,并且它支持更多的CSS选择器.但是,这可以让您将简单的CSS选择器与Beautiful Soup API结合使用.

让我们按照建议直接使用lxml+cssselect:

>>> from lxml.cssselect import CSSSelector
>>> from lxml.etree import fromstring
>>> 
>>> sel = CSSSelector('a[href="/city/london d12"]')
>>>
>>> tree = fromstring('london')
>>> sel(tree)
[]

您还可以使用部分属性匹配:

soup.select('a[href*=london]')  # contains "london"
soup.select('a[href$=d12]')  # ends with "d12"
soup.select('a[href^=/city/london]')  # starts with "city/london"

推荐阅读
mobiledu2402852357
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有