在documentation之后,bs3应该如下所示:
soup = BeautifulSoup(html_doc)
soup.find("div", {"class":"box text"})
在documentation之后为bs4这样:
soup = BeautifulSoup(html_doc)
soup.find("div", class_="box text")
对我来说,只有bs3风格有效。有什么建议吗?
编辑: 例如:
<div class="box text" align="center">
答案 0 :(得分:0)
我希望使用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>