繁体   English   中英

嵌套 Beautiful Soup 类

[英]Nested Beautiful Soup classes

我正在尝试从以下结构中获取所有类(包括“data_from”、“data_to”中的数据):

<div class="alldata">
  <div class="data_from">
  <div class="data_to">
  <div class="data_to">
  <div class="data_from">
</div>

到目前为止,我已经尝试找到所有课程,但没有成功。 “data_from”、“data_to”类未被获取:

soup.find_all(class_=True)

当我试图对“alldata”类进行文盲时,我只获取第一个“data_from”类。

for data in soup.findAll('div', attrs={"class": "alldata"}):
    print(data.prettify())

非常感谢所有帮助。 谢谢你。

在较新的代码中,请避免使用旧语法findAll()或与新语法混合使用 - 而是仅使用find_all() - 如需更多信息,请花一分钟时间查看文档


您的 HTML 无效,但要使用有效的 HTML 实现目标,您可以使用css selectors来选择所有<div>以及包含在外部<div>中的类:

soup.select('.alldata div[class]')
例子
from bs4 import BeautifulSoup

html='''<div class="alldata">
  <div class="data_from"></div>
  <div class="data_to"></div>
  <div class="data_to"></div>
  <div class="data_from"></div>
</div>'''

soup = BeautifulSoup(html)

soup.select('.alldata div[class]')
输出
[<div class="data_from"></div>,
 <div class="data_to"></div>,
 <div class="data_to"></div>,
 <div class="data_from"></div>]

另外,如果您想获取其文本,请遍历您的ResultSet

for e in soup.select('.alldata div[class]'):
    print(e.text)

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM