3

パーサーを使用してXMLa から aを解析しようとしています。使用するライブラリが他にもあることは知っていますが、これは私が最もよく知っているものであり、私にとっては最も複雑ではないようです。URLxml.saxJava

解析に使用しているコードは次のとおりです。

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たが、ファイルが大きすぎて自動的に切り捨てられ、データが不足しています。

ある障害を回避するのに何日も費やしたので、別の障害に止められたので、これに対する何らかの回避策があれば大歓迎です。

4

1 に答える 1