如何在 scrapy.selector.unified.SelectorList 上迭代使用 xpath?

How iteratively use xpath on a scrapy.selector.unified.SelectorList?

假设我有以下页面结构:

在该结构中,我有以下嵌套结构:

我写了

offers = response.xpath('//li[@class = "search-page__result"]')

尝试创建一个万无一失的列表。我相信这部分是成功的,因为如果我说

for offer in offers:
    print(offer.get())

然后它将 HTML 小节作为字符串打印出来。

但是如果我说

for offer in offers:
    features = offer.xpath('//ul[@class = "listing-key-specs"]')

features 的内容看起来好像我会使用 response 而不是 offer

有没有人指导我如何一次在结构的每个子部分上迭代使用 xpath?

编辑:我想添加我在回答问题之前找到的替代解决方案。正如 YohanObadia 所建议的here,下面的方法也可以工作:

for offer in offers:
    features = Selector(text = offer.extract()).xpath('//ul[@class = "listing-key-specs"]')

// 表示您的上下文再次成为根。只需在斜杠前放一个点,上下文就提供了。

for offer in offers:
    features = offer.xpath('.//ul[@class = "listing-key-specs"]')

解释了。