您好, 欢迎来到 !    登录 | 注册 | | 设为首页 | 收藏本站

在Python中使用lxml解析具有错误标头的文本文件

在Python中使用lxml解析具有错误标头的文本文件

鉴于这些文件一个标准,可以编写一个适当的解析器,而不用猜测,或者希望beautifulsoup正确。这并不意味着它是最适合您的解决方案,但从某种意义上来说,这确实是可行的。

根据http://www.sec.gov/info/edgar/pdsdissemspec910.pdf上的标准,您所获得的(在PEM机柜内)是由提供的DTD定义的SGML文档。因此,首先转到第48-55页,在其中提取文本,然后将其另存为“ edgar.dtd”。

要做的第一件事是安装SP并使用其工具来确保该文档确实对该DTD有效且可解析,以确保您不会在不会平移的事情上浪费大量时间出来。

Python附带有一个验证SGML解析器sgmllib。不幸的是,它从未完全完成,在2.6-2.7中已弃用(在3.x中已删除)。但这并不意味着它将无法正常工作。因此,尝试一下,看看它是否有效。

如果没有,我不知道Python有什么好的替代方法。大部分SGML代码都使用C,C 或Perl。但是,只要您愿意用C / Cython / boost- python /任何形式或使用ctypes编写自己的包装,就可以很容易地包装任何C或C 库(我将从SP开始)。您只需要包装顶级功能,而无需构建完整的绑定集。但是,如果您以前从未做过这样的事情,那可能不是学习的最佳时机。

或者,您可以包装命令行工具。SP随附nsgmls。还有一个用perl编写的,具有相同名称的好工具(我认为这是http://savannah.nongnu.org/projects/perlsgml/的一部分,但我并不肯定。)以及许多其他工具。

或者,当然,您可以使用perl(或C ++)而不是Python来编写整个内容或仅编写解析层。

python 2022/1/1 18:44:37 有308人围观

撰写回答


你尚未登录,登录后可以

和开发者交流问题的细节

关注并接收问题和回答的更新提醒

参与内容的编辑和改进,让解决方法与时俱进

请先登录

推荐问题


联系我
置顶