2012-02-28 18 views
2

lxmlで解析されたhtmlドキュメントをXPathでクエリしようとしています。この文書は、Plastic in Wikipediaについてのhtml形式のダウンロードのみです。その後、私はlxmlでXPathが失敗する

from lxml import etree 
root = etree.parse("plastic.html",etree.XMLParser(resolve_entities=False)) 

「& REG」でエラーを回避するためにlxmlの無効化実体置換でそれを解析し、私は名前空間URL

htmltag = root.iter().next() 
nsurl = htmltag.nsmap.values()[0] 

を取得し、私はどちらかにXPathクエリを使用したいです'root'または 'htmltag'ですが、できません。私はさまざまな方法で試しましたが、次のように私には最も正しい形式があり、とにかくエラーが発生します。

root.xpath('//ns:body',namespace={'ns',nsurl}) 

は、そして、これは私がIPythonコンソールでコマンドを実行しています

XPathResultError: Unknown return type: dict 

を得るものですが、私はそれが問題かもしれないと思います。私は間違って何をしていますか?

+0

'root.xpath( '// ns:body'、namespaces = {'ns':nsurl}) ' – RanRag

+0

もこちらをご覧くださいhttp://stackoverflow.com/questions/4210730/how- do-i-use-xml-namespaces-with-find-find-in-lxml – RanRag

答えて

11

これはシンプルなスペルミスです。 namespaceの代わりにnamespacesを使用してください。

関連する問題