0

文档之后,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">
4

1 回答 1

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>
于 2019-06-20T19:08:34.093 回答