【问题标题】:How to scrape individual paragraphs from SEC 10-Ks如何从 SEC 10-Ks 中抓取单个段落
【发布时间】:2017-05-09 18:44:32
【问题描述】:

我正在做一个项目,我需要将 10-K 分解成它们的组成段落。对于某些 10-K,我可以做一些简单的事情,例如 soup.find_all('p'),但我也看到其他 10-K 使用 <div> 代替 <p> 标签。以下是我看到公司声明断句的三种不同方式:

使用空 div 标签在段落之间创建空间的情况:

<div></div><div>Text of a paragraph</div><div></div>

在顶部或底部使用边距/填充来创建空间的情况:

<div style="padding-top: 10pt">Text of a paragraph</div>`, `<div style="margin-bottom: 10pt"></div>

公司使用&lt;br&gt;标签的案例:

<div><br><div><div>Text of paragraph</div><div><br></div>

我不得不为这三个案例中的每一个编写新代码,我担心可能有其他方法来标记我还没有遇到过的段落。

问题:是否有我可以使用的包或方法来标准化所有这些声明断句的不同方式,或者我应该继续为我遇到的每个新案例编写代码?

【问题讨论】:

    标签: python html css beautifulsoup edgar


    【解决方案1】:

    我不认为您可以在此处采用通用方法。但是,作为一种启发式方法,您可以将带有文本内容的 &lt;div&gt; 视为一个段落,而不管是否包含其他标签(例如其他 &lt;div&gt;s)。

    您甚至可以尝试编写一个 XPath 查询来捕获此条件并使用 XML 解析器来枚举节点。或者将可能的包含文本的标签列表传递给soup.find_all(),例如:

    soup.find_all(['div', 'p'])
    

    并通过仅包含文本内容的非空发现将它们视为段落。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2016-07-22
      • 1970-01-01
      • 1970-01-01
      • 2018-06-30
      • 2020-08-18
      相关资源
      最近更新 更多