python - 仅在 H2 内抓取内容 - BeautifulSoup

标签 python python-3.x beautifulsoup

我有这个标记。

<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

我只想获取虚拟办公室包,而不是价格信息。

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

准确地说,我如何只获得“Virtual Office 包”以及这两种 HTML 中的任何一种?

最佳答案

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

关于python - 仅在 H2 内抓取内容 - BeautifulSoup,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27786052/

相关文章:

python - 如何查找仅具有某些属性的标签 - BeautifulSoup

Python从网站上抓取fb评论

python - ofono dbus自省(introspection): method not found

python - 在 kivy 中嵌套小部件

python - 无法使用 BeautifulSoup 从页面获取实际标记

python - 如何通过post请求传递序列化的二进制数据

python - 交换嵌套列表中的列 (Python 3)

Python 和 BeautifulSoup - 我可以重复使用函数 find_All 吗?

python - 无法从一些不同深度的链接中解析产品名称

python - audioop的 "sound fragment"参数是什么类型的文件?