パーサーを使用してXML
a から aを解析しようとしています。使用するライブラリが他にもあることは知っていますが、これは私が最もよく知っているものであり、私にとっては最も複雑ではないようです。URL
xml.sax
Java
解析に使用しているコードは次のとおりです。
parser = xml.sax.make_parser()
handler = MangaHandler()
parser.setContentHandler(handler)
url = urlfetch.Fetch('http://www.mangapanda.com/alphabetical', allow_truncated = False, follow_redirects = False, deadline = False)
xml.sax.parseString(url.content, handler)
&
これは、パーサーが最初の記号に到達すると、SaxException (無効なトークン) を返します。
SAXParseException: <unknown>:582:34: not well-formed (invalid token)
urlfetch
ストリームではなく文字列を返すため、 parse()
(ストリームでのみ機能する)を使用できず、parseString()
代わりに使用する必要があります。ストリームとして解析するとこれが修正されるかどうかを確認するために、次のことを試しました。
parser.parse(io.StringIO(url.content).encode('utf-8'))
しかし、これは次を返します:
TypeError: initial_value must be unicode or None, not str
urllib2
また、代わりにストリームを返すライブラリを使用しようとしましurlfetch
たが、ファイルが大きすぎて自動的に切り捨てられ、データが不足しています。
ある障害を回避するのに何日も費やしたので、別の障害に止められたので、これに対する何らかの回避策があれば大歓迎です。