Geo*_*oub 12 python beautifulsoup
在BeautifulSoup中,如果我想找到其类为span3的所有div,我只会这样做:
result = soup.findAll("div",{"class":"span3"})
Run Code Online (Sandbox Code Playgroud)
但是,在我的情况下,我想找到所有以span3开头的div,因此,BeautifulSoup应该找到:
<div id="span3 span49">
<div id="span3 span39">
Run Code Online (Sandbox Code Playgroud)
等等...
我如何实现我想要的目标?我熟悉正则表达式; 但是我不知道如何将它们用于美丽的汤,也没有通过BeautifulSoup的文档找到任何帮助.
ale*_*cxe 15
嗯,这些是id您显示的属性:
<div id="span3 span49">
<div id="span3 span39">
Run Code Online (Sandbox Code Playgroud)
在这种情况下,您可以使用:
soup.find_all("div", id=lambda value: value and value.startswith("span3"))
Run Code Online (Sandbox Code Playgroud)
要么:
soup.find_all("div", id=re.compile("^span3"))
Run Code Online (Sandbox Code Playgroud)
如果这只是一个错字,并且你实际上有class属性开头span3,并且你真的需要检查类的开头span3,你可以使用"starts-with" CSS选择器:
soup.select("div[class^=span3]")
Run Code Online (Sandbox Code Playgroud)
这是因为您无法以检查class属性的方式检查id属性,因为class它是特殊的,它是一个多值属性.
这也适用:
soup.select("div[class*=span3]") # with *= means: contains
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
10189 次 |
| 最近记录: |