2017-04-25 21 views
0

私はツリーノードから情報を取得しようとしています。私はxpath検索からノードを取得しましたが、それらのノードの中でxpath検索を再度実行しようとしましたが、ルートに移動します。特定のクラスを持つノードを反復処理し、異なる情報を取り出すことは可能ですか?xpath内のlxml etree反復検索

私は私が取得しようとしたとき、私は、私はすでに

lxml.html.xpath(//div[contains(@class, product-preview)]) 

を使用して取得していたものの製品プレビューノードを見つける必要がありますが

<li> 
    <div class="product-preview"> 
     <div class="product-image"> 
     <div class="product-info"> 
<\li> 

を解析していたコードの例前のコードの結果を反復する異なるサブノードは常に親を検索します

私がしようとしているのは、

0123です。
for element in lxml.html.xpath(//div[contains(@class, product-preview)]): 
    element.xpath("new search") 

要素内で新しい検索を行うために要素を反復処理する必要がありますか?

ありがとうございました。

答えて

0

lxml.htmlのfind_classメソッドを使用して問題を解決しましたが、親なしのノードが返されます。その後、xpathを使って内部を検索することができます。

for element in tree.find_class(class_name): 
    element.xpath(xpath).get(attrib)