【发布时间】:2020-01-22 10:40:14
【问题描述】:
有没有办法一次性找到带有条件列表的所有标签?
例如,在这个 HTML 中,我想提取 <p> 标签和 <div data-type="b"> 标签。
HTML
<div>
<h1>Chapter 1</h1>
<p>aaa</p>
<p>aaa</p>
<p>aaa</p>
<div>
<h1>Section 1</h1>
<p>bbb</p>
<p>bbb</p>
<p>bbb</p>
</div>
<div data-type="a">...</div>
<div data-type="a">...</div>
<div data-type="b">...</div>
...
</div>
期望的输出
<p>aaa</p>
<p>aaa</p>
<p>aaa</p>
<p>bbb</p>
<p>bbb</p>
<p>bbb</p>
<div data-type="a">...</div>
<div data-type="a">...</div>
当然可以:
from bs4 import BeautifulSoup
soup = BeautifulSoup(html)
p_tags = soup.find_all('p')
div_tags = soup.find_all('div', {"data-type": "a"})
但我想做这样的事情:
p_and_div_tags = soup.find_all(['p', 'div_tag_with_attribute'])
有办法吗?
谢谢
【问题讨论】:
标签: html python-3.x web-scraping beautifulsoup