2016-07-01 12 views
1

私はXPathを初めて使用しています。単純なwikiスタイルのWebページをlxmlで解析することはできません。WikiスタイルのWebページの解析、XPathエラー

私は、次の式があります。それは正常に動作します

"".join(tree.xpath('//*[@id="mw-content-text"]/div[1]/p//text()')) 

を、私は子供を持つクラスである「参照」を除外して、次の式でlxml.etree.XPathEvalErrorを取得する必要があります:

"".join(tree.xpath('//*[@id="mw-content-text"]/div[1]/p//*[not(@class="reference")].text()')) 

正しいXPath式は何ですか?ありがとうございます。

+0

ページとは何ですか? –

答えて

1

/text()の代わりに.text()が原因でエラーが発生した可能性があります。

あなたがp要素のテキストも含またいなら、あなたはdescendant-or-self を使用する必要があります。

//*[@id="mw-content-text"]/div[1]/p/descendant-or-self::*[not(@class="reference")]/text() 
+0

こんにちは、コードに説明を追加してください。これは、レビュー専用のキューにポップアップされました。コード専用の回答が多いようです。 – Will

+0

@Will Okay。完了しました。 – howlger

+1

ありがとうございました!私はそれを昨日理解しており、最後のXPath式は '// * [@ id =" mw-content-text "]/div [1]/p/descendant-or-self :: * [not(ancestor :: sup )] /テキスト() '。 – Ilya