如果elements属性是动态变化的,我们如何提取元素值

时间:2017-08-16 19:16:50

标签: css python-2.7 xpath scrapy-spider

如果动态更改属性,我们如何使用xpth或css选择器提取值,例如:

<p data-reactid=".2e46q6vkxnc.1.$0">
    <b data-reactid=".2e46q6vkxnc.1.$0.0">Mark Obtain</b>
    <i class="avu-full-width" data-reactid=".2e46q6vkxnc.1.$0.1">
        <span data-reactid=".2e46q6vkxnc.1.$0.1.0"> </span>
        <span data-reactid=".2e46q6vkxnc.1.$0.1.1">450 A+.</span>
    </i>
</p>

<p data-reactid=".2e46q6vkxnc.1.$1">
    <b data-reactid=".2e46q6vkxnc.1.$1.0">Student Name</b>
    <i class="avu-full-width" data-reactid=".2e46q6vkxnc.1.$1.1">
        <span data-reactid=".2e46q6vkxnc.1.$0.1.0"> </span>
        <span data-reactid=".2e46q6vkxnc.1.$0.1.1">First Name</span>
    </i>
</p>

在这种情况下,元素的属性是动态变化的,但是&#34; Mark Obtain&#34;和#34;学生姓名&#34;将永远是相同的,所以有没有办法,或者我们可以写条件或一些正则表达式与xpath表达式得到&#34; 450 A +&#34;和&#34;名字&#34;值。 请帮忙

1 个答案:

答案 0 :(得分:0)

要获取所需的值,您可以使用以下XPath表达式:

//p[b="Mark Obtain"]//span[2]/text()

获取"450 A+."

//p[b="Student Name"]//span[2]/text()

获取"First Name"