Scrapy无法获取xpath

时间:2018-04-04 10:45:11

标签: python xpath scrapy

我在此网站NTP

中获得了此代码
        <h5>Soundbooster</h5> <br><br>
      <p class="details">
        <b>Filtro attuale</b>
      </p>
      <blockquote>
        <p>
          <b>Catalogo:</b> 
            Aliant</br>
          <b>Marca e Modello:</b> 
            Mazda - 3 </br>
          <b>Versione:</b> 
            (3th gen) 2013-now (Petrol)
        </p>
      </blockquote>

我正在尝试提取元素“Mazda - 3”而我无法得到它,它返回空白。 在代码中,“马自达-3”部分具有品牌价值。我得到了名称和版本值。

这是我实施的方式:

    for ntp in response.css('div.content-1col-nobox'):

        name = ntp.xpath('normalize-space(//h5/text())').extract_first()
        brand = ntp.xpath('normalize-space(//blockquote/p//text()[4])').extract_first()
        version = ntp.xpath('normalize-space(//div/blockquote[1]/p//text()[6])').extract_first()
        result = ("{}  {} - {}".format(name, brand, version))

这篇文章与这篇文章有关,它在那里工作,但我意识到我只获得了部分数据。见这里:Scrapy add.xpath or join xpath

请有人帮帮我。

提前谢谢。

1 个答案:

答案 0 :(得分:0)

我不确定代码中的ntp是什么,但这应该有效:

brand = ntp.xpath('.//b[.="Marca e Modello:"]/following-sibling::text()[1]').extract_first()