首页 > 解决方案 > 使用scrapy,如何从标签内部获取价值

问题描述

从以下源代码:

<div class="units">
    <select class="select tierprices" onchange="somethting.changeUnitPrice(this)">
        <option value="1" data-qtyid="qty-34"
                data-formated="&lt;span class=&quot;price&quot;&gt;AUD $867.64&lt;/span&gt;">
            Unit Price
        </option>
        <option value="5" data-qtyid="qty-34"
                data-formated="&lt;span class=&quot;price&quot;&gt;AUD $866.84&lt;/span&gt;">
            5+ ITEMS
        </option>
        <option value="10" data-qtyid="qty-34"
                data-formated="&lt;span class=&quot;price&quot;&gt;AUD $865.84&lt;/span&gt;">
            10+ ITEMS
        </option>
        <option value="50" data-qtyid="qty-34"
                data-formated="&lt;span class=&quot;price&quot;&gt;AUD $864.14&lt;/span&gt;">
            50+ ITEMS
        </option>
    </select>
</div>

使用 Scrapy,我如何获得价值AUD $867.64

标签: xmlxpathscrapy

解决方案


如果你只需要得到你提到的那个价格,你可以像这样通过 xpath 选择器来做到这一点。

response.xpath('//select//option[@value="1"]/@data-formated').re(r'&lt;span class=&quot;price&quot;&gt;(.*)&lt;/span&gt;')

否则,您可以使用 xpath 来获取所有价格。输出将是一个列表对象。


推荐阅读