scrapy with :: before Selector - PullRequest
       10

scrapy with :: before Selector

0 голосов
/ 08 мая 2018
<div class="priceContainerDescuentoPG">
    <p class="priceDescuentoPG">
      ::before
      "$29.610"
    </p>
</div>

Вы пытались извлечь эту цену с помощью scrapath, используя этот xpath, результат пуст.

//*[@class="priceDescuentoPG"]/text()

Я уверен, что проблема в селекторе :: before. Как я могу решить и пропустить этот селектор? Спасибо за помощь

1 Ответ

0 голосов
/ 09 мая 2018

Это происходит потому, что значение priceDescuentoPG рассчитывается с помощью функции general.js строка 117:

var descuentoTargetaPGVitrinas = function(){

    $('.vitrineHome ul .midLevel').each(function(){
        var precioVigente = $(this).find('.priceProd').text().replace("$","").replace(/,/g,"").replace(/\./g,"");
        var descuentoPG = (precioVigente*0.90);
        $(this).find('.priceDescuentoPG').text('$' + formatearMoneda(descuentoPG/100,0,'.',','));
    });
};

Вы можете скопировать эту функцию внутри вашего паука:

prices = response.xpath("//*[@class='priceProd']/text()").extract()

for price in prices:
  price_prod = price.strip().replace('$', '').replace(',','').replace('.', '')
  descuento_pg = float(price_prod) * 0.90
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...