Python:Xpath问题为for循环中的每个DIV获取值

Python:Xpath问题为for循环中的每个DIV获取值,python,python-3.x,xpath,Python,Python 3.x,Xpath,我使用Python3.6来处理一大块HTML,我遇到的问题是下面的循环代码正在工作,但是atag.xpath查询正在搜索整个HTML源代码,并返回数据大小的所有四个标记值 我试图做的是,当为for循环处理PAGE\u RAW时,对于包含项类的DIV的每个实例,它将找到具有填充类的子DIV,并拉出该标记的数据大小属性,如果在HTML源代码 HTML <div class="item"> <div class="padding" data-size="12"><

我使用Python3.6来处理一大块HTML,我遇到的问题是下面的循环代码正在工作,但是
atag.xpath
查询正在搜索整个HTML源代码,并返回
数据大小的所有四个标记值

我试图做的是,当为
for
循环处理
PAGE\u RAW
时,对于包含
项类的DIV的每个实例,它将找到具有
填充类的子DIV
,并拉出该标记的
数据大小
属性,如果在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>

这里面临的问题是,在第二个xpath中,
/
告诉它在文档中的任何地方搜索(不管当前节点是否是特定的
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")
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")