【问题标题】:Extract Text from HTML Python (BeautifulSoup, RE, Other Option?)从 HTML Python 中提取文本(BeautifulSoup、RE、其他选项?)
【发布时间】:2015-02-13 23:32:23
【问题描述】:

我熟悉 BeautifulSoup 和正则表达式作为从 HTML 中提取文本的一种方法,但对其他方面不太熟悉,例如 ElementTree、Minidom 等。

我的问题很简单。给定下面的 HTML sn-p,哪个库最适合提取下面的文本?文本为整数。

<td class="tl-cell tl-popularity" data-tooltip="7,944,796" data-tooltip-instant="">
<div class="pop-meter">
<div class="pop-meter-background"></div>
<div class="pop-meter-overlay" style="width: 55%"></div>
</div>
</td>

【问题讨论】:

  • 好吧 re 绝对不是一个好选择,对 html 进行微小的更改,您的正则表达式就会中断。

标签: python web-scraping beautifulsoup html-parsing


【解决方案1】:

BeautifulSoup 相当简单:

from bs4 import BeautifulSoup

data = """
<td class="tl-cell tl-popularity" data-tooltip="7,944,796" data-tooltip-instant="">
<div class="pop-meter">
<div class="pop-meter-background"></div>
<div class="pop-meter-overlay" style="width: 55%"></div>
</div>
</td>
"""

soup = BeautifulSoup(data)
print(soup.td['data-tooltip'])

如果您有多个td 元素,并且需要从每个元素中提取data-tooltip

for td in soup.find_all('td', {'data-tooltip': True}):
    print(td['data-tooltip'])

【讨论】:

  • 这个问题肯定是基于意见的,虽然这个解决方案很“漂亮”,但你没有指出为什么它最好。 ;-) +1
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2021-07-12
  • 1970-01-01
  • 1970-01-01
  • 2020-07-25
  • 2018-11-10
  • 2016-12-27
  • 2014-05-22
相关资源
最近更新 更多