【问题标题】:Scrapy xpath how toScrapy xpath如何
【发布时间】:2013-06-05 17:35:39
【问题描述】:

我的蜘蛛需要在一定程度上适应我正在抓取的网站,因为我需要获取的信息有时在 div[1] 中,有时在 div[2] 中。这是一个例子:

item['details'] = site.select('//*[@id="detailFacts"]/div[2]/div[2]//text()').extract()

item['details'] = site.select('//*[@id="detailFacts"]/div[1]/div[2]//text()').extract()

如何将这两者结合在一个语句中,以便scrapy 从其中任何一个中获取我?

【问题讨论】:

    标签: python xpath web-scraping scrapy


    【解决方案1】:

    试试这个:

    details = site.select('//*[@id="detailFacts"]/div[1]/div[2]//text()|//*[@id="detailFacts"]/div[2]/div[2]//text()').extract()
    item['details'] = next(s for s in details if s)  # getting first not-empty item from the list
    

    details = site.select('//*[@id="detailFacts"]/div[1]|div[2]/div[2]//text()').extract()
    item['details'] = next(s for s in details if s)  # getting first not-empty item from the list
    

    希望它对你有用。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2015-03-03
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2019-03-17
      • 1970-01-01
      • 1970-01-01
      • 2021-09-24
      相关资源
      最近更新 更多