それはXML parsers often send out HTTP requests for fetching DTDsが文書で参照既知の問題です。具体的には、Python's one does this。これにより、多くのこれらのDTDをホストするwww.w3.orgのトラフィックが過剰になります。これにより、XML解析は非常に時間がかかり、場合によってはタイムアウトになります。これは、信頼できないサードパーティに依存しているテキスト処理に関連しているように見えるため、重大な問題になる可能性があります。xml.saxでDTDリクエストにHTTPプロキシを使用させるにはどうすればよいですか?
(真の解決策は非常に困難であるため)、この問題を軽減するために、私はローカルにキャッシュするWebプロキシをインストールし、このプロキシを経由してその要求を送信するxml.saxをお願いしたいと思います。私は具体的には、プロキシ設定が他のコンポーネントに漏れることを望まないので、システム全体の設定は問題になりません。
にはどうすればxml.saxは、HTTPプロキシを使用することができますか?
私が持っている:
handler = # instance of a subclass of xml.sax.handler.ContentHandler
parser = xml.sax.make_parser()
parser.setContentHandler(handler)
parser.parse(indata)
return handler.result()
一つのアプローチは、カスタムのEntityResolverを使用することです。ただし、十分な情報が得られないため、it is not possible to implement a caching EntityResolverが表示されます。これを行うには
バージョンは何? – aaronasterling
@aaronasterling:2.5が好ましいが、2.6および2.7も許容されます。 –