Python BeautifulSoup:在标签内获取内容

时间:2019-04-04 14:05:22

标签: python python-3.x beautifulsoup python-requests urllib

我的BeautifulSoup请求返回以下内容:

<td align="left">
<div><div class="dgreen"></div><div class="dorange"></div><div class="dred"></div><div class="dorange"></div></div>
</td>

使用Python BeautifulSoup,您将如何获得“ dgreen”,“ dorange”,“ dred”标签? 因为这些不是文本,所以我无法获取它们并将它们存储在列表中。

谢谢。

2 个答案:

答案 0 :(得分:0)

要获取属性类中的单词

获得div后,进行迭代

divs = soup.find_all("div", {"class": True})
for div in divs:
    print(div.attrs["class"])

答案 1 :(得分:0)

我将select与选择器一起使用,以确保div具有一个类。您可以使用set获得唯一的

from bs4 import BeautifulSoup as bs

html = '''
<html>
 <head></head>
 <body> 
  <div>
   <div class="dgreen"></div>
   <div class="dorange"></div>
   <div class="dred"></div>
   <div class="dorange"></div>
  </div> 
 </body>
</html>
'''

soup = bs(html, 'lxml')
labels = [item['class'] for item in soup.select('div[class]')]
print(labels)
result = set(map(tuple, labels))
print(result)