python - 如何在 BeautifulSoup 中查找类以字符串开头的所有 div?

标签 python beautifulsoup

在 BeautifulSoup 中,如果我想找到类为 span3 的所有 div,我会这样做:

result = soup.findAll("div",{"class":"span3"})

但是,在我的例子中,我想找到所有类以 span3 开头的 div,因此,BeautifulSoup 应该找到:

<div id="span3 span49">
<div id="span3 span39">

等等……

我如何实现我想要的?我熟悉正则表达式;但是我不知道如何将它们应用到漂亮的汤中,也没有通过浏览 BeautifulSoup 的文档找到任何帮助。

最佳答案

好吧,这些是您要显示的 id 属性:

<div id="span3 span49">
<div id="span3 span39">

在这种情况下,您可以使用:

soup.find_all("div", id=lambda value: value and value.startswith("span3"))

或者:

soup.find_all("div", id=re.compile("^span3"))

如果这只是一个拼写错误,并且您实际上有 class 属性以 span3 开头,并且您确实需要检查以 span3< 开头的类,你可以使用“starts-with”CSS selector:

soup.select("div[class^=span3]")

这是因为您不能像检查id 属性那样检查class 属性,因为class 很特殊,它是一个multi-valued attribute .

关于python - 如何在 BeautifulSoup 中查找类以字符串开头的所有 div?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35465182/

相关文章:

python - Pandas 将 JSON 读取到 Excel 中

python - 将图像从 Python 传递到 MATLAB 函数

python - 在mac雪豹Mac OS X 10.6.8上安装mysql报错

python - 如何使用BeautifulSoup获取表中的信息?

python - python 中漂亮的 soup xml 格式

python - BeautifulSoup属性错误: 'NoneType' object has no attribute 'text'

Python解释器与脚本的关系

Python 2.7 : Unable to import matplotlib. pyplot

python - Beautiful Soup 中 find_all 方法的返回类型是什么?

python - 读取关卡脚本在某些站点上发送错误 "IndexError: string index out of range"