由于问题是由 非法
XML字符引起的,在这种情况下为0x19字节,因此我决定将其剥离。我在该网站上发现了以下正则表达式:
invalid_xml = re.compile(u'[x00-x08x0B-x0Cx0E-x1Fx7F]')
我写了这段代码,在保存xml feed的同时删除了非法字节:
conn = urllib2.urlopen(xmlfeed)xmlfile = open('output', 'w')while True: data = conn.read(4096) if data: newdata, count = invalid_xml.subn('', data) if count > 0 : print 'Removed %s illegal characters from XML feed' % count xmlfile.write(newdata) else: breakxmlfile.close()


