我想解析10-K文件(公司的财务报表)。可以找到Apple的示例here(查找.txt文件)。现在,我正在阅读有关如何解析这些文件的research paper(请参阅第30-31页)。第一步被描述为删除所有ASCII编码段...这就是我想要弄清楚如何删除它们。
我在StackOverflow上看到了关于如何删除非ASCII代码的几个问题,但这是不同的。 ASCII编码的段包括:<TYPE>
,GRAPHIC
,ZIP
和EXCEL
的{{1}}个标记的所有文档细分 - 我想删除它们。
因此,如果我按如下方式加载txt文件:
PDF
如何从此txt文件中删除所有ASCII编码段?要删除HTML标记,我使用过程here,但是ASCII编码段呢?
答案 0 :(得分:1)
如果我理解正确,您处理的格式与SEC EDGAR流程有某种关联。
我没有花时间正式查阅。也许你应该。
通过检查您链接到的Apple语句,看起来您想要用正字符串替换与正则表达式<DOCUMENT>\s*<TYPE>(?:GRAPHIC|ZIP|EXCEL|PDF).*?</DOCUMENT>
匹配的任何内容。
免责声明:正确的实施方法是使用XML解析器并提取您想要的元素,而不是试图在词汇上删除您不想要的内容。这在lxml
中应该不会很难。
我首先认为这是XBLR,但事实并非如此。尝试使用ETree
解析它会引发异常,因为某些元素(包括<TYPE>
)的关闭标记似乎是可选的。最好的方法是找出这是什么格式(EDGAR site有几个规格;其中一个,也许?)并找到一个合适的DTD,然后从那里继续。
完成整理后,您希望了解如何remove elements with XPath和how to use regex in (lxml
) XPath。然后可能重新实现使用XML和XPath完成的其他提取。