擅长:python、mysql、java
<p>您可以使用<code>find_all</code>中的<a href="https://www.crummy.com/software/BeautifulSoup/bs4/doc/#a-function" rel="nofollow noreferrer">function</a>来选择“p”标记,前提是它们以前的所有同级标记都不包含特定的文本,例如:</p>
<pre><code>html = '''
<p>p1</p>
<p>p2</p>
<p>p3</p>
<span class="zls" id=".B1.D9.87.D8.A7.DB.8C_.D9.88.D8.A"> certain unique text </span>
<p>p4</p>
<p>p5</p>
'''
soup = BeautifulSoup(html, 'html.parser')
def select_tags(tag, text='certain unique text'):
return tag.name=='p' and all(text not in t.text for t in tag.find_previous_siblings())
print(soup.find_all(select_tags))
</code></pre>
<blockquote>
<p><code>[<p>p1</p>, <p>p2</p>, <p>p3</p>]</code></p>
</blockquote>