-----BEGIN PRIVACY-ENHANCED MESSAGE-----Proc-Type: 2001,MIC-CLEAROriginator-name: webmaster@www.sec.govOriginator-Key-asymmetric: MFgwCgYEVQgBAQICAf8DSgAwRwJAW2sNKK9AVtBzYZmr6aGjlWyK3XmZv3dTINen TWSM7vrzLADbmYQaionwg5sDW3P6oaM5D3tdezXMm7z1T+B+twIDAQABMIC-Info: RSA-MD5,RSA,AHxm/u6lqdt8X6gebNqy9afC2kLXg+GVIolG/Vrrw/dTCPGwM15+hT6AZMfDSvFZ YVPEaPjyiqB4rV/GS2lj6A==<SEC-document>0001193125-07-200376.txt : 20070913<SEc-header>0001193125-07-200376.hdr.sgml : 20070913<ACCEPTANCE-DATETIME>20070913115715ACCESSION NUMBER: 0001193125-07-200376CONFORMED SUBMISSION TYPE: 10-KPUBliC document COUNT: 7CONFORMED PERIOD OF REPORT: 20070630fileD AS OF DATE: 20070913DATE AS OF CHANGE: 20070913
和第一个<在这种情况下直到第51行(并且在所有情况下都不是51). xml部分如下所示:
</SEc-header><document><TYPE>10-K<SEQUENCE>1<filename>d10k.htm<DESCRIPTION>FORM 10-K<TEXT><HTML><head><Title>Form 10-K</Title></head> <BODY BGcolor="WHITE"><h5 align="left"><a href="#toc">table of Contents</a></h5>
我可以使用lxml动态处理吗?或者我应该使用流编辑器来省略每个文件的标题?谢谢!
这是我当前的代码和错误.
from lxml import etreef = etree.parse('temp.txt')XMLSyntaxError: Start tag expected,'<' not found,line 1,column 1
编辑:
FWIW,这里是file的链接.
解决方法 鉴于这些文件有一个标准,可以编写一个合适的解析器而不是猜测事物,或希望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或C库(我从SP开始),只要你习惯用C/C++ython / boost-python /无论使用ctypes编写自己的包装.您只需要包装顶级函数,而不是构建一组完整的绑定.但如果你以前从未做过这样的事情,那可能不是最好的学习时间.
或者,您可以包装命令行工具. SP附带nsgmls.还有另一个用perl编写的同名工具(我认为是http://savannah.nongnu.org/projects/perlsgml/的一部分,但我不是肯定的.)还有其他几十种工具.
或者,当然,您可以在perl(或C)而不是Python中编写整个内容,或仅编写解析层.
总结以上是内存溢出为你收集整理的使用lxml解析Python中带有错误标题的文本文件全部内容,希望文章能够帮你解决使用lxml解析Python中带有错误标题的文本文件所遇到的程序开发问题。
如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)