在 xpath 的帮助下从那些没有 class 属性的元素中获取值
Get values from the elements those don't have class attribute with the help of xpath
我想获取那些没有像 class 这样的属性名称的元素值,我在 xpath 的帮助下用不同的代码尝试了很多次但没有成功。请提前帮帮我out.thanks
my code
response.xpath("//select/option[count(@class)=0]/text()").extract()
html tags to fetch the values
<select name="skuAndSize" class="nsg-form--drop-down exp-pdp-size-dropdown exp-pdp-dropdown two-column-dropdown selectBox" data-tooltiptext="Select a Size" required="required" data-error="Select a Size" data-has-fixed-ancestor="true" style="display: none;">
<option class="exp-pdp-size-not-in-stock" value=""></option>
<option name="skuId" value="17401288:40" data-label="(EU 40)">EU 40</option>
<option name="skuId" value="17401287:40.5" data-label="(EU 40.5)">EU 40.5</option>
<option name="skuId" value="17401286:41" data-label="(EU 41)">EU 41</option>
<option name="skuId" value="17401285:42" data-label="(EU 42)">EU 42</option>
<option name="skuId" value="17401284:42.5" data-label="(EU 42.5)">EU 42.5</option>
<option name="skuId" value="17401283:43" data-label="(EU 43)">EU 43</option>
<option name="skuId" value="17401282:44" data-label="(EU 44)">EU 44</option>
<option name="skuId" value="17401281:44.5" data-label="(EU 44.5)">EU 44.5</option>
<option name="skuId" value="17401280:45" data-label="(EU 45)">EU 45</option>
<option name="skuId" value="17401279:45.5" data-label="(EU 45.5)">EU 45.5</option>
<option name="skuId" value="17401295:46" data-label="(EU 46)">EU 46</option>
<option name="skuId" value="17401294:47" data-label="(EU 47)">EU 47</option>
<option class="exp-pdp-size-not-in-stock selectBox-disabled" name="skuId" value="17401293:47.5" data-label="(EU 47.5)">EU 47.5</option>
</select>
你可以试试不带attr的选项过滤class
,url地址内容有另一个select和不带class的选项,文本也是47.5,就是为什么你喜欢最后一个是 47.5,你可以像这样用 select name='skuAndSize'
过滤:
response.xpath("//select[@name='skuAndSize']/option[not(@class)]/text()").extract()
输出:
我想获取那些没有像 class 这样的属性名称的元素值,我在 xpath 的帮助下用不同的代码尝试了很多次但没有成功。请提前帮帮我out.thanks
my code
response.xpath("//select/option[count(@class)=0]/text()").extract()
html tags to fetch the values
<select name="skuAndSize" class="nsg-form--drop-down exp-pdp-size-dropdown exp-pdp-dropdown two-column-dropdown selectBox" data-tooltiptext="Select a Size" required="required" data-error="Select a Size" data-has-fixed-ancestor="true" style="display: none;">
<option class="exp-pdp-size-not-in-stock" value=""></option>
<option name="skuId" value="17401288:40" data-label="(EU 40)">EU 40</option>
<option name="skuId" value="17401287:40.5" data-label="(EU 40.5)">EU 40.5</option>
<option name="skuId" value="17401286:41" data-label="(EU 41)">EU 41</option>
<option name="skuId" value="17401285:42" data-label="(EU 42)">EU 42</option>
<option name="skuId" value="17401284:42.5" data-label="(EU 42.5)">EU 42.5</option>
<option name="skuId" value="17401283:43" data-label="(EU 43)">EU 43</option>
<option name="skuId" value="17401282:44" data-label="(EU 44)">EU 44</option>
<option name="skuId" value="17401281:44.5" data-label="(EU 44.5)">EU 44.5</option>
<option name="skuId" value="17401280:45" data-label="(EU 45)">EU 45</option>
<option name="skuId" value="17401279:45.5" data-label="(EU 45.5)">EU 45.5</option>
<option name="skuId" value="17401295:46" data-label="(EU 46)">EU 46</option>
<option name="skuId" value="17401294:47" data-label="(EU 47)">EU 47</option>
<option class="exp-pdp-size-not-in-stock selectBox-disabled" name="skuId" value="17401293:47.5" data-label="(EU 47.5)">EU 47.5</option>
</select>
你可以试试不带attr的选项过滤class
,url地址内容有另一个select和不带class的选项,文本也是47.5,就是为什么你喜欢最后一个是 47.5,你可以像这样用 select name='skuAndSize'
过滤:
response.xpath("//select[@name='skuAndSize']/option[not(@class)]/text()").extract()
输出: