栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 面试经验 > 面试问答

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

面试问答 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

在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来编写整个内容或仅编写解析层。



转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/624992.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号