我从网站上刮了一些HTML
<div>
<div id="content1">
</div>
<div id="content3">
</div>
<div id="content22">
</div>
</div>
我如何迭代所有以ID开头的ID的DIV content
?
最简单的方法是使用CSS选择器:
soup.select('div[id^=content]')
该^=
语法指定该id
属性值应该开始用content
。
使用作为参数传递给的正则表达式过滤器,您可以获得相同的结果:id
element.find_all()
import re
soup.find_all('div', id=re.compile('^content'))
演示:
>>> from bs4 import BeautifulSoup
>>> sample = '''\
... <div>
... <div id="content1">
... </div>
... <div id="content3">
... </div>
... <div id="content22">
... </div>
... </div>
... '''
>>> soup = BeautifulSoup(sample)
>>> soup.select('div[id^=content]')
[<div id="content1">
</div>, <div id="content3">
</div>, <div id="content22">
</div>]
>>> soup.find_all('div', id=re.compile('^content'))
[<div id="content1">
</div>, <div id="content3">
</div>, <div id="content22">
</div>]
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句