【发布时间】:2020-04-07 21:49:44
【问题描述】:
我已使用以下代码将 html 文件中的文本保存在名为“data”的变量中:
from bs4 import BeautifulSoup, NavigableString, Tag
soup=BeautifulSoup(html, "lxml")
data = "ANALYSIS\n"
for header in soup.find_all('h2', text=re.compile('Analysis')):
nextNode = header
while True:
nextNode = nextNode.nextSibling
if nextNode is None:
break
if isinstance(nextNode, Tag):
if nextNode.name == "h2":
break
data = data + "\n\n" + nextNode.text
我需要对我的数据变量做两件事: 1.删除一行中不需要的\n,然后 2. 保持段落之间的\n格式,但在我调用数据变量时不显示\n。
我的目标是最终将数据变量保存在一个 excel 文件中。
目前我的输出是:
'分析\n\n\n概述\n\n财务改善大大改善; TSR 表现优于\n同行。所有基于收益和盈利能力的指标均显示同比\n有所改善。 \n\n年度激励\n\n激励指标基本不变,但目标目标的披露\n进一步增强。与上一年一样,2018 年度\n激励计划由五个公司类别组成:(i) 健康、\n安全和环境,(ii) 运营,(iii) 财务,(iv) 战略\n里程碑,以及 (v) ) 股东总回报。该公司披露了每个类别中的某些指标,包括相关指标的目标和支出矩阵。为战略里程碑类别的三个指标披露了不同的\n目标,这比 2017 年有所改进,当时该指标中的目标通常是\n定性的。除了相对指标外,没有披露阈值或最大目标。
但我想要的输出是(存储在 excel 文件中):
分析
概览
财务改善大大改善;股东总回报优于同行。所有基于收益和盈利能力的衡量指标均显示同比改善。
年度奖励
激励指标基本没有变化,但目标目标的披露进一步加强。与上一年一样,2018 年度激励计划由五个企业类别组成:(i) 健康、安全和环境,(ii) 运营,(iii) 财务,(iv) 战略里程碑,以及 (v) TSR。该公司披露了每个类别中的某些指标,包括相关指标的目标和支出矩阵。战略里程碑类别下的三个指标披露了不同的目标,这比 2017 年有所改进,当时指标中的目标通常是定性的。除了相对指标外,没有披露阈值或最大目标。
请告知我如何以这种格式保存数据?谢谢
【问题讨论】:
标签: python html web-scraping text beautifulsoup