这就是事情。
这是一个大单词列表。我想根据这些词抓取一些数据。这很费时间,所以我想把它分成几块。
首先,我将一个单词列表加载到我的蜘蛛的__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()
如果我想从我停止的地方继续我的爬行工作,我该如何处理它?感谢。