2017-03-27 48 views
1

当我把一个点,使XPath的相对我的,它返回{“名”:“无”},当我删除了点,直到循环结束XPath的相对路径返回无

.//*[@id="listingAds"]/section/section/ul/li[1]/a/section/h2 
重复相同的数据

下面是完整的代码

import scrapy 
class BrickSetSpider(scrapy.Spider): 
    name = "brickset_spider" 
    start_urls = ['https://www.leboncoin.fr/annonces/offres/bretagne/'] 

    def parse(self, response): 
     SET_SELECTOR = '.dontSwitch .trackable' 
     for annonce in response.css(SET_SELECTOR): 


      NAME_SELECTOR = './/*[@id="listingAds"]/section/section/ul/li[1]/a/section/h2' 
      NAME_CATEGORIE = '.item_title+ .item_supp ::text' 
      NAME_PLACE = '.item_supp+ .item_supp ::text' 
      NAME_PRICE = '.item_price ::text' 

      yield { 
      'name': annonce.xpath(NAME_SELECTOR).extract_first(), 
      } 

回答

0

那是因为你已经SET_SELECTOR让你进入目录的列表。换句话说,每个annonce选择器对应于每个搜索结果元素(每个列表)。适当调整您的NAME_SELECTOR

NAME_SELECTOR = './/h2/text()'