1
我正在使用Python 3.6處理HTML塊,我遇到的問題是下面的循環代碼正在工作,但atag.xpath
查詢是搜索整個HTML源代碼並返回data-size
的所有四個標記值。Python:Xpath在For循環中爲每個DIV獲取值
我想要做的是,當PAGE_RAW
針對for
循環處理,對於含有類item
一個DIV的每個實例,它會找到一類的padding
孩子DIV並拉出data-size
屬性,而不是在HTML源代碼中找到的所有標籤。
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
查看第二個答案,這很好解釋:http://stackoverflow.com/questions/35606708/what-is-the-difference-between-and-in-xpath – araraonline