Max*_*rai 23 python beautifulsoup
我正在使用BeautifulSoup - python模块.我必须找到任何对id的引用,例如:'post-#'.例如:
<div id="post-45">...</div>
<div id="post-334">...</div>
Run Code Online (Sandbox Code Playgroud)
我该如何过滤?
html = '<div id="post-45">...</div> <div id="post-334">...</div>'
soupHandler = BeautifulSoup(html)
print soupHandler.findAll('div', id='post-*')
Run Code Online (Sandbox Code Playgroud)
Mar*_*ers 58
您可以将函数传递给findAll:
>>> print soupHandler.findAll('div', id=lambda x: x and x.startswith('post-'))
[<div id="post-45">...</div>, <div id="post-334">...</div>]
Run Code Online (Sandbox Code Playgroud)
或正则表达式:
>>> print soupHandler.findAll('div', id=re.compile('^post-'))
[<div id="post-45">...</div>, <div id="post-334">...</div>]
Run Code Online (Sandbox Code Playgroud)
由于他要求匹配“post-#somenumber#”,因此最好精确地使用
import re
[...]
soupHandler.findAll('div', id=re.compile("^post-\d+"))
Run Code Online (Sandbox Code Playgroud)