【问题标题】:How to find inside many <div> tags? (Beautiful Soup)如何在许多 <div> 标签中找到? (美丽的汤)
【发布时间】:2021-12-07 21:16:48
【问题描述】:

我想在以下标签中查找内容:

<h4 id="rfq-info-header-id" class="pr-3 mb-3">
        RFQ1526090
      </h4>

完整代码:

<rfq-display-header-seller>
   <div class="card-body pb-0">
      <div class="row">
         <div id="rfq-info-header-col-1" class="col-xs-12 col-sm-12 col-md-12 col-lg-6">
            <div class="small text-muted">RFQ ID</div>
            <h4 id="rfq-info-header-id" class="pr-3 mb-3">
               RFQ1526090
            </h4>

我试过了:

rfq_id = [tag.text.strip() for tag in soup.find_all(name='h4', attrs={'id': 'rfq-info-header-id','class': 'pr-3 mb-3'})]
print(rfq_id)

但这导致了空列表[]。 这是因为 h4 标签在许多标签内吗?如何简化代码提取上述代码中标签内的数据

【问题讨论】:

  • 尝试pr-3mb-3 作为类属性
  • 发布 HTML 代码而不是图片。既然你需要的元素有一个id,为什么要使用find_all()id 在文档中应该是唯一的。您可以使用.find()id 获取元素。
  • 请务必在帖子中包含源 URL。
  • @Ram .find() 打印无
  • HTMl 代码贴出

标签: python html python-3.x web-scraping beautifulsoup


【解决方案1】:

我得到如下输出:

from bs4 import BeautifulSoup

html_doc="""

<rfq-display-header-seller>
   <div class="card-body pb-0">
      <div class="row">
         <div id="rfq-info-header-col-1" class="col-xs-12 col-sm-12 col-md-12 col-lg-6">
            <div class="small text-muted">RFQ ID</div>
            <h4 id="rfq-info-header-id" class="pr-3 mb-3">
               RFQ1526090
            </h4>

"""

soup = BeautifulSoup(html_doc, 'html.parser')
# rfq_id = soup.find('h4').text
# print(rfq_id)

rfq_id = [t.get_text(strip=True) for t in soup.find_all('h4')]

print(rfq_id)

输出:

['RFQ1526090']

仅使用 find 方法输出:

RFQ1526090

【讨论】:

  • 在尝试您的代码时,它会返回答案,但是当我使用网页执行此操作时,它会显示空列表
  • 根据您的问题,我的回答是产生正确的结果。如果可能,您应该将代码与网页一起发布。您可以创建新帖子。谢谢
猜你喜欢
  • 1970-01-01
  • 2017-12-05
  • 2021-06-24
  • 1970-01-01
  • 1970-01-01
  • 2019-04-21
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多