Лично мне нравится реализация @ user1460015 после того, как мне удалось обойти свое решение.
Мое решение состоит в том, чтобы использовать подпроцесс Python для вызова URL-адреса scrapy по URL-адресу, пока все URL-адреса не будут обработаны.
В моем коде, если пользователь не указывает, хочет ли он последовательно анализировать URL, мы можем запустить паука обычным способом.
process = CrawlerProcess({'USER_AGENT': 'Mozilla/4.0 (compatible; \
MSIE 7.0; Windows NT 5.1)'})
process.crawl(Spider, url = args.url)
process.start()
Если пользователь указывает, что это должно быть сделано последовательно, мы можем сделать это:
for url in urls:
process = subprocess.Popen('scrapy runspider scrapper.py -a url='\
+ url + ' -o ' + outputfile)
process.wait()
Обратите внимание: эта реализация не обрабатывает ошибки.