【问题标题】:Remove html tag from Website - BeautifulSoup从网站中删除 html 标签 - BeautifulSoup
【发布时间】:2018-06-12 07:32:28
【问题描述】:

我正在从网站抓取数据。这个网站有这样的代码:

<span class="demo-span">
    <b>Tag b:</b> 
    <a href="...">Hello</a> 
     world!
</span>

这是我尝试过的:

new_data = data.find("span",{"class":"demo-span"})
print(new_data.get_text())

预期输出:

Hello world!

但实际输出是:

Tag b: Hello world!

【问题讨论】:

  • 不知何故,我认为如果您渲染 HTML 并通过其 DOM 层次结构访问元素,这将更容易实现。因为您希望保持文本材料的层次结构和视觉排列。
  • 首先,感谢您回答我的问题,python 有没有像 jquery 一样的 remove()。我想删除 标记并获取新 的文本

标签: python beautifulsoup web-crawler


【解决方案1】:

您可以使用decompose() 删除标签。

html = '''
<span class="demo-span">
    <b>Tag b:</b> 
    <a href="...">Hello</a> 
     world!
</span>'''

soup = BeautifulSoup(html, 'html.parser')

new_data = soup.find("span", {"class": "demo-span"})
new_data.b.decompose()
print(new_data.get_text(' ', strip=True))
# Hello world!

【讨论】:

  • 首先感谢您回答我的问题,我只是尝试使用“new_data.b.decompose()”,但输出返回“None”。
  • deomcpose() 返回 None 并删除标签。完全复制我的代码并打印print(new_data.get_text(' ', strip=True))
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2020-03-08
  • 2011-04-04
  • 1970-01-01
  • 2011-02-01
  • 1970-01-01
  • 2014-04-25
  • 2020-02-26
相关资源
最近更新 更多