Scrapy"暂停/恢复"成为"暂停/重启"

时间:2017-08-02 17:56:27

标签: python scrapy scrapy-spider scrapy-shell

这就是事情。
这是一个大单词列表。我想根据这些词抓取一些数据。这很费时间,所以我想把它分成几块。

首先,我将一个单词列表加载到我的蜘蛛的__init__列表中。

def __init__(self, category=None, *args, **kwargs):
    super(GlosbeSpider, self).__init__(*args, **kwargs)
    list_file = open('glosbe/vi/word4/word_list_4', 'r')
    for lines in list_file:
        lines = lines.strip()
        self.word_list.append(lines)
    list_file.close()
    print 'INIT!!!!!'

然后我在start_requests()中创建了一些初始请求:

def start_requests(self):
    container = []
    for word in self.word_list:
        url = "https://glosbe.com/gapi/tm?from=zh&dest=%s&format=json&phrase=%s&page=%d&pretty=true" % (
            self.language, word, 1)
        meta_info = {'page_num': 1, 'word': word}
        new_req = scrapy.Request(url, callback=self.parse_json, meta=meta_info, dont_filter=True,
                                 errback=self.process_error)
        container.append(new_req)
    print 'START_REQUESTS!!!!!'
    return container

我解析parse_json()中的项目(此处省略代码,不重要)。

根据官方文档,如果我在shell中使用相同的命令两次,如:

scrapy crawl MySpider -s JOBDIR=dir_I_want_to_use

然后抓取工具将从停止的位置继续工作。

但是,当我使用上面的相同命令恢复作业时,仍然

INIT!!!!!
START_REQUESTS!!!!!
屏幕上的

。为什么?我认为它应该继续其解析过程而不调用start_requests() 如果我想从我停止的地方继续我的爬行工作,我该如何处理它?感谢。

0 个答案:

没有答案