1
Python 3.6を使用してHTMLの塊を処理していますが、ループの下のコードが機能していますが、atag.xpath
クエリが問題ですHTMLソース全体を検索し、data-size
の4つのタグ値をすべて返します。Python:Xpath Forループ内の各DIVの値を取得する問題
は私がやろうとしていることであるPAGE_RAW
はfor
ループ用に処理されたときに、それはpadding
のクラスと子のDIVを見つけ、data-size
を引き出しますitem
のクラスを含むDIVのすべてのインスタンスのためにHTMLソースでの検索の場合、その1つのタグの属性であり、すべてのタグではありません。
HTML
<div class="item">
<div class="padding" data-size="12"></div>
</div>
<div class="item">
<div class="padding" data-size="13"></div>
</div>
<div class="item">
<div class="padding" data-size="14"></div>
</div>
<div class="item">
<div class="padding" data-size="15"></div>
</div>
コード
import lxml.html as LH
...
PAGE_RAW = driver.page_source
PAGE_RAW = LH.fromstring(PAGE_RAW)
for atag in PAGE_RAW.xpath("//div[contains(@class, 'item')]"):
data = atag.xpath("//div[contains(@class, 'padding')]/@data-size")
「.//」と「。/」の違いは何ですか? – llanato
'.//'は子孫(または自己)にマッチしますが、 '。/'は子のみにマッチします。 – araraonline
ここで2番目の答えを確認してください。よく説明されています:http://stackoverflow.com/questions/35606708/what-is-the-difference-between-and-in-xpath – araraonline