使用FOR循环时,如何在item.add_css()中编写正确的CSS?

时间:2019-08-10 22:48:56

标签: python css xpath web-scraping scrapy

我正在学习Scrapy,并尝试使用add_css()填充我的商品。 我刮了https://www.zonaprop.com.ar/casas-venta-capital-federal.html 我想抓一些关于每个房子的信息。因此,我使用FOR循环遍历列表房屋(div.posting-card)。 我想用add_css()填充我的商品,但在这种情况下我不知道如何使用CSS?

为了清楚起见。

这是我之前没有add_css所做的:

        for casa in response.css('div.posting-card'):
            item = ZonapropItem()
            item['name'] = casa.css(' a.go-to-posting::text').get()
            item['direction'] = casa.css('span.posting-location.go-to-posting::text').get()
            yield item

这就是我现在想做的方式:

        item = ItemLoader(ZonapropItem(), response)
        for casa in response.css('div.posting-card'):
            item.add_css('name', '**SOME CSS**')
            item.add_css('direction','**SOME CSS**')
            yield item.load_item()

Thank you very much!

1 个答案:

答案 0 :(得分:0)

您非常接近正确的答案:

for casa in response.css('div.posting-card'):
    loader = ItemLoader(ZonapropItem(), casa)
    loader.add_css('name', 'a.go-to-posting::text')
    loader.add_css('direction','span.posting-location.go-to-posting::text')
    yield loader.load_item()

只需在循环内部实例化项目加载器,然后在其中输入casa选择器即可。