Python 结果未保存在json中

Python 结果未保存在json中,python,web-scraping,scrapy,Python,Web Scraping,Scrapy,我正在使用scrapy并运行以下脚本: import scrapy from ..items import SizeerItem from scrapy.http.request import Request class SizeerSpiderSpider(scrapy.Spider): name = 'sizeer' pg = 0 currentPg = 2 start_urls = [ 'https://sizeer.lt/moterims

我正在使用
scrapy
并运行以下脚本:

import scrapy
from ..items import SizeerItem
from scrapy.http.request import Request

class SizeerSpiderSpider(scrapy.Spider):
    name = 'sizeer'
    pg = 0
    currentPg = 2
    start_urls = [
        'https://sizeer.lt/moterims'
    ]

    def parse(self, response):
        items = SizeerItem()
        pages = response.xpath("//nav[@class='m-pagination']//span[3]/text()").extract()
        pages = list(dict.fromkeys(pages))

        if self.pg == 0:
            pages = list(int(s) for s in pages[0].split() if s.isdigit())
            self.pg = pages[0]

        name = response.xpath("//div[@class='b-productList_content']//a/@href").extract()

        items['name'] = list(dict.fromkeys(name))

        while self.currentPg <= self.pg:
            url = response.request.url + "?sort=default&limit=60&page=" + str(self.currentPg)
            self.currentPg += 1
            yield Request(url, callback=self.parse)
但是在那之后,我的
mydata.json
是空的。这是我第一次尝试“玩”它,但我真的不明白问题出在哪里。

试试这个:

注意蜘蛛的屈服和呼唤。

试试这个:


请注意爬行器的屈服和调用。

您还需要
屈服
您刮下的项目,以便“刮擦引擎”将它们通过管道和路径(这是您需要导出到文件的内容)

由于
yield
是非阻塞的,您可以在填充它之后添加,并且该函数在以下情况下仍将
yield
您的请求:

    ...
    name = response.xpath("//div[@class='b-productList_content']//a/@href").extract()
    items['name'] = list(dict.fromkeys(name))
    yield items  # <<< Here for example 

    while self.currentPg <= self.pg:
        ...

您还需要
生成
您刮取的项目,以便Scrapy引擎将它们通过管道和路径运行(这是您需要导出到文件的内容)

由于
yield
是非阻塞的,您可以在填充它之后添加,并且该函数在以下情况下仍将
yield
您的请求:

    ...
    name = response.xpath("//div[@class='b-productList_content']//a/@href").extract()
    items['name'] = list(dict.fromkeys(name))
    yield items  # <<< Here for example 

    while self.currentPg <= self.pg:
        ...

欢迎提供支持您答案的链接;但是仅仅一个指向文档的链接不足以回答堆栈溢出问题;但仅仅一个指向文档的链接并不足以回答堆栈溢出问题。
scrapy crawl sizeer -o mydata.json