在文档之后,bs3 应该是这样的:
soup = BeautifulSoup(html_doc)
soup.find("div", {"class":"box text"})
在这样的 bs4文档之后:
soup = BeautifulSoup(html_doc)
soup.find("div", class_="box text")
对我来说只有 bs3 风格有效。有什么建议么?
编辑:示例:
<div class="box text" align="center">
我更喜欢 CSS 选择器select('div.box.text')
。这很容易,它可以在属性的各个位置找到类:
from bs4 import BeautifulSoup
data = '''
<div class="box text" align="center"></div>
<div class="box" align="center"></div>
<div class="text" align="center"></div>
<div class="text box" align="center"></div>
<div class="text somethingelse box" align="center"></div>'''
soup = BeautifulSoup(data, 'lxml')
print("soup.find_all('div', {'class':'box text'}):")
print('*' * 80)
for div in soup.find_all("div", {"class":"box text"}):
print(div)
print("\nsoup.find_all('div', class_='box text'):")
print('*' * 80)
for div in soup.find_all("div", class_="box text"):
print(div)
print("\nUsing soup.select('div.box.text'):")
print('*' * 80)
for div in soup.select('div.box.text'):
print(div)
印刷:
soup.find_all('div', {'class':'box text'}):
********************************************************************************
<div align="center" class="box text"></div>
soup.find_all('div', class_='box text'):
********************************************************************************
<div align="center" class="box text"></div>
Using soup.select('div.box.text'):
********************************************************************************
<div align="center" class="box text"></div>
<div align="center" class="text box"></div>
<div align="center" class="text somethingelse box"></div>