【问题标题】:Scrape content only inside H2 - BeautifulSoup仅在 H2 内部刮取内容 - BeautifulSoup
【发布时间】:2015-01-05 19:00:47
【问题描述】:

我有这个标记。

<h2>
  Virtual Office packages
  <span>From</span><span class="cost">$74.97</span>
</h2>

有时

<h2>Virtual Office packages</h2>

还有这段代码。

service_header = service.select("h2")[0].string

我只想得到Virtual Office packages 而不是价格信息。

我可以在第二种情况下得到它,但如果找到的 HTML 像第一种情况一样,我会得到 None,并且有价格信息。

确切地说,我如何才能仅获得带有任何一种 HTML 类型的“虚拟 Office 包”?

【问题讨论】:

    标签: python python-3.x beautifulsoup


    【解决方案1】:
    soup = BeautifulSoup("""
    <h2>
      Virtual Office packages
      <span>From</span><span class="cost">$74.97</span>
    </h2>""")
    
    
    print(soup.find("h2").next_element.strip())
    Virtual Office packages
    
    
    soup = BeautifulSoup("""
    <h2>Virtual Office packages</h2>
    """)
    
    
    print(soup.find("h2").next_element)
    
    Virtual Office packages
    
    soup = BeautifulSoup("""
    <h2>
      Virtual Office packages
      <span>From</span><span class="cost">$74.97</span>
    </h2>""")
    
    
    print(soup.find("h2").contents[0].strip())
    Virtual Office packages
    
    soup = BeautifulSoup("""
    <h2>Virtual Office packages</h2>
    """)
    
    print soup.find("h2").contents[0]
    Virtual Office packages
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2015-01-03
      相关资源
      最近更新 更多